Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 3df53ef

Browse files
committed
Made building with asan work
1 parent a8c08bc commit 3df53ef

File tree

3 files changed

+65
-0
lines changed

3 files changed

+65
-0
lines changed

ci/builders/mac_unopt.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,48 @@
514514
}
515515
}
516516
},
517+
{
518+
"cas_archive": false,
519+
"drone_dimensions":
520+
[
521+
"os=Mac-13|Mac-14",
522+
"device_type=none",
523+
"cpu=arm64"
524+
],
525+
"gclient_variables":
526+
{
527+
"download_android_deps": false,
528+
"use_rbe": true
529+
},
530+
"gn":
531+
[
532+
"--ios",
533+
"--runtime-mode",
534+
"debug",
535+
"--unoptimized",
536+
"--no-stripped",
537+
"--no-lto",
538+
"--xcode-symlinks",
539+
"--asan",
540+
"--rbe",
541+
"--no-goma"
542+
],
543+
"name": "ci/macos/host_debug_unopt_asan",
544+
"description": "Builds impeller golden unit tests with asan enabled.",
545+
"ninja":
546+
{
547+
"config": "ci/host_debug_unopt_arm64",
548+
"targets":
549+
[ "flutter/impeller/golden_tests:impeller_golden_tests"]
550+
},
551+
"properties":
552+
{
553+
"$flutter/osx_sdk":
554+
{
555+
"sdk_version": "15a240d"
556+
}
557+
}
558+
},
517559
{
518560
"cas_archive": false,
519561
"drone_dimensions":

impeller/compiler/BUILD.gn

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Use of this source code is governed by a BSD-style license that can be
33
# found in the LICENSE file.
44

5+
import("//build/toolchain/toolchain.gni")
56
import("//flutter/impeller/tools/impeller.gni")
67
import("//flutter/shell/version/version.gni")
78

@@ -116,3 +117,20 @@ impeller_component("compiler_unittests") {
116117
"//flutter/testing:testing_lib",
117118
]
118119
}
120+
121+
copy("copy_asan_runtime_dylib") {
122+
visibility = [ "*" ]
123+
124+
if (host_cpu == "arm64") {
125+
_libclang_base_path =
126+
"$buildtools_path/mac-arm64/clang/lib/clang/18/lib/darwin/"
127+
} else {
128+
_libclang_base_path =
129+
"$buildtools_path/mac-x64/clang/lib/clang/18/lib/darwin/"
130+
}
131+
132+
_dylib_name = "libclang_rt.asan_osx_dynamic.dylib"
133+
134+
sources = [ "$_libclang_base_path/$_dylib_name" ]
135+
outputs = [ "$root_out_dir/$_dylib_name" ]
136+
}

impeller/tools/shaders.gni

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ template("impeller_shaders") {
151151

152152
group(target_name) {
153153
public_deps = []
154+
155+
if (is_asan && is_mac) {
156+
public_deps += [ "//flutter/impeller/compiler:copy_asan_runtime_dylib" ]
157+
}
158+
154159
if (impeller_enable_metal) {
155160
public_deps += [ ":$mtl_shaders" ]
156161
}

0 commit comments

Comments
 (0)