Skip to content

Commit

Permalink
Made building with asan work
Browse files Browse the repository at this point in the history
  • Loading branch information
gaaclarke committed Dec 10, 2024
1 parent a8c08bc commit 76a44ca
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
43 changes: 43 additions & 0 deletions ci/builders/mac_unopt.json
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,49 @@
}
}
},
{
"cas_archive": false,
"drone_dimensions":
[
"os=Mac-13|Mac-14",
"device_type=none",
"cpu=arm64"
],
"gclient_variables":
{
"download_android_deps": false,
"use_rbe": true
},
"gn":
[
"--target-dir",
"ci/host_debug_unopt_arm64",
"--runtime-mode",
"debug",
"--unoptimized",
"--no-stripped",
"--no-lto",
"--xcode-symlinks",
"--asan",
"--rbe",
"--no-goma"
],
"name": "ci/macos/host_debug_unopt_asan",
"description": "Builds impeller golden unit tests with asan enabled.",
"ninja":
{
"config": "ci/host_debug_unopt_arm64",
"targets":
[ "flutter/impeller/golden_tests:impeller_golden_tests"]
},
"properties":
{
"$flutter/osx_sdk":
{
"sdk_version": "15a240d"
}
}
},
{
"cas_archive": false,
"drone_dimensions":
Expand Down
18 changes: 18 additions & 0 deletions impeller/compiler/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/toolchain/toolchain.gni")
import("//flutter/impeller/tools/impeller.gni")
import("//flutter/shell/version/version.gni")

Expand Down Expand Up @@ -116,3 +117,20 @@ impeller_component("compiler_unittests") {
"//flutter/testing:testing_lib",
]
}

copy("copy_asan_runtime_dylib") {
visibility = [ "*" ]

if (host_cpu == "arm64") {
_libclang_base_path =
"$buildtools_path/mac-arm64/clang/lib/clang/18/lib/darwin/"
} else {
_libclang_base_path =
"$buildtools_path/mac-x64/clang/lib/clang/18/lib/darwin/"
}

_dylib_name = "libclang_rt.asan_osx_dynamic.dylib"

sources = [ "$_libclang_base_path/$_dylib_name" ]
outputs = [ "$root_out_dir/$_dylib_name" ]
}
5 changes: 5 additions & 0 deletions impeller/tools/shaders.gni
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,11 @@ template("impeller_shaders") {

group(target_name) {
public_deps = []

if (is_asan && is_mac) {
public_deps += [ "//flutter/impeller/compiler:copy_asan_runtime_dylib" ]
}

if (impeller_enable_metal) {
public_deps += [ ":$mtl_shaders" ]
}
Expand Down

0 comments on commit 76a44ca

Please sign in to comment.