Index: base/BUILD.gn |
diff --git a/base/BUILD.gn b/base/BUILD.gn |
index 3852d0a866f309e4dbfce3036376b5eff48045e2..67d200baf281ed929169bfb24134131c4b258abc 100644 |
--- a/base/BUILD.gn |
+++ b/base/BUILD.gn |
@@ -642,6 +642,8 @@ component("base") { |
"sys_info_openbsd.cc", |
] |
+ data = [] |
+ |
configs += [ ":base_implementation" ] |
deps = [ |
@@ -746,6 +748,30 @@ component("base") { |
"sha1_win.cc", |
] |
+ # Required for base/stack_trace_win.cc to symbolize correctly. |
+ data += [ "$root_build_dir/dbghelp.dll" ] |
+ |
+ if (is_component_build) { |
+ # Copy the VS runtime DLLs into the isolate so that they don't have to be |
+ # preinstalled on the target machine. The debug runtimes have a "d" at |
+ # the end. |
+ if (is_debug) { |
+ vcrt_suffix = "d" |
+ } else { |
+ vcrt_suffix = "" |
+ } |
+ |
+ # These runtime files are copied to the output directory by the |
+ # vs_toolchain script that runs as part of toolchain configuration. |
+ data += [ |
+ "$root_out_dir/msvcp120${vcrt_suffix}.dll", |
+ "$root_out_dir/msvcr120${vcrt_suffix}.dll", |
+ ] |
+ if (is_asan) { |
+ data += [ "//third_party/llvm-build/Release+Asserts/lib/clang/3.7.0/lib/windows/clang_rt.asan_dynamic-i386.dll" ] |
+ } |
+ } |
+ |
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
@@ -770,6 +796,11 @@ component("base") { |
"threading/platform_thread_internal_posix.cc", |
] |
+ if (is_asan) { |
+ # TODO(GYP) hook up asan on Mac. GYP has this extra dylib: |
+ #data += [ "$root_out_dir/libclang_rt.asan_osx_dynamic.dylib" ] |
+ } |
+ |
if (is_ios) { |
sources -= [ |
"files/file_path_watcher_fsevents.cc", |
@@ -788,6 +819,11 @@ component("base") { |
# Linux. |
if (is_linux) { |
+ if (is_asan || is_lsan || is_msan || is_tsan) { |
+ # For llvm-sanitizer. |
+ data += [ "//third_party/llvm-build/Release+Asserts/lib/libstdc++.so.6" ] |
+ } |
+ |
# TODO(brettw) this will need to be parameterized at some point. |
linux_configs = [] |
if (use_glib) { |
@@ -867,6 +903,15 @@ component("base") { |
] |
} |
+ if (is_asan || is_lsan || is_msan || is_tsan) { |
+ data += [ "//tools/valgrind/asan/" ] |
+ if (is_win) { |
+ data += [ "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer.exe" ] |
+ } else { |
+ data += [ "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer" ] |
+ } |
+ } |
+ |
configs += [ "//build/config/compiler:wexit_time_destructors" ] |
if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
@@ -1374,10 +1419,10 @@ test("base_unittests") { |
data = [ |
"test/data/", |
- |
- # TODO(dpranke): Remove when icu declares this directly. |
- "$root_out_dir/icudtl.dat", |
] |
+ if (is_linux || is_mac || is_win) { |
+ data += [ "//testing/test_env.py" ] |
Dirk Pranke
2015/07/14 00:45:22
isn't this more a dependency of //base/test:test_s
|
+ } |
# Allow more direct string conversions on platforms with native utf8 |
# strings |
@@ -1390,6 +1435,8 @@ test("base_unittests") { |
":base_java", |
":base_java_unittest_support", |
] |
+ # TODO(brettw) I think this should not be here, we should not be using |
+ # isolate files. |
Dirk Pranke
2015/07/14 00:45:22
We should probably discuss this at some point; it
|
isolate_file = "base_unittests.isolate" |
} |
@@ -1443,6 +1490,15 @@ test("base_unittests") { |
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] |
+ |
+ # Symbols for crashes when running tests on swarming. |
+ if (symbol_level > 0) { |
+ if (is_win) { |
+ data += [ "$root_out_dir/base_unittests.exe.pdb" ] |
+ } else if (is_mac) { |
+ data += [ "$root_out_dir/base_unittests.dSYM/" ] |
+ } |
+ } |
} |
if (is_android) { |