Index: base/BUILD.gn |
diff --git a/base/BUILD.gn b/base/BUILD.gn |
index eff163a61224a463e25e68a7aa330b048599b238..02d0bf91dc109757149c0a8d81eab62f54812b35 100644 |
--- a/base/BUILD.gn |
+++ b/base/BUILD.gn |
@@ -39,7 +39,7 @@ source_set("base_paths") { |
"base_paths_win.h", |
] |
- if (is_android || is_mac) { |
+ if (is_android || is_mac || is_ios) { |
sources -= [ "base_paths_posix.cc" ] |
} |
@@ -83,6 +83,7 @@ component("base") { |
"android/content_uri_utils.cc", |
"android/content_uri_utils.h", |
"android/cpu_features.cc", |
+ "android/cxa_demangle_stub.cc", |
"android/event_log.cc", |
"android/event_log.h", |
"android/field_trial_list.cc", |
@@ -139,11 +140,8 @@ component("base") { |
"atomic_ref_count.h", |
"atomic_sequence_num.h", |
"atomicops.h", |
- "atomicops_internals_gcc.h", |
"atomicops_internals_mac.h", |
"atomicops_internals_portable.h", |
- "atomicops_internals_x86_gcc.cc", |
- "atomicops_internals_x86_gcc.h", |
"atomicops_internals_x86_msvc.h", |
"auto_reset.h", |
"barrier_closure.cc", |
@@ -177,6 +175,7 @@ component("base") { |
"containers/linked_list.h", |
"containers/mru_cache.h", |
"containers/scoped_ptr_hash_map.h", |
+ "containers/scoped_ptr_map.h", |
"containers/small_map.h", |
"containers/stack_container.h", |
"cpu.cc", |
@@ -270,6 +269,9 @@ component("base") { |
"mac/bind_objc_block.h", |
"mac/bundle_locations.h", |
"mac/bundle_locations.mm", |
+ "mac/call_with_eh_frame.cc", |
+ "mac/call_with_eh_frame.h", |
+ "mac/call_with_eh_frame_asm.S", |
"mac/cocoa_protocols.h", |
"mac/dispatch_source_mach.cc", |
"mac/dispatch_source_mach.h", |
@@ -320,10 +322,8 @@ component("base") { |
"message_loop/incoming_task_queue.h", |
"message_loop/message_loop.cc", |
"message_loop/message_loop.h", |
- "message_loop/message_loop_proxy.cc", |
- "message_loop/message_loop_proxy.h", |
- "message_loop/message_loop_proxy_impl.cc", |
- "message_loop/message_loop_proxy_impl.h", |
+ "message_loop/message_loop_task_runner.cc", |
+ "message_loop/message_loop_task_runner.h", |
"message_loop/message_pump.cc", |
"message_loop/message_pump.h", |
"message_loop/message_pump_android.cc", |
@@ -364,7 +364,6 @@ component("base") { |
"pending_task.h", |
"pickle.cc", |
"pickle.h", |
- "port.h", |
"posix/eintr_wrapper.h", |
"posix/file_descriptor_shuffle.cc", |
"posix/global_descriptors.cc", |
@@ -427,6 +426,8 @@ component("base") { |
"strings/latin1_string_conversions.h", |
"strings/nullable_string16.cc", |
"strings/nullable_string16.h", |
+ "strings/pattern.cc", |
+ "strings/pattern.h", |
"strings/safe_sprintf.cc", |
"strings/safe_sprintf.h", |
"strings/string16.cc", |
@@ -642,6 +643,8 @@ component("base") { |
"sys_info_openbsd.cc", |
] |
+ data = [] |
+ |
configs += [ ":base_implementation" ] |
deps = [ |
@@ -722,6 +725,11 @@ component("base") { |
"sys_info.cc", |
"sys_info_posix.cc", |
] |
+ |
+ # We build with a 10.9 min sdk version but lots of code in this directory is |
+ # written to target a 10.6 min sdk version and thus depends on declarations |
+ # marked as deprecated on 10.9+. Suppress these warnings for now. |
+ cflags = [ "-Wno-deprecated-declarations" ] |
} else { |
# Remove NaCl stuff. |
sources -= [ |
@@ -742,6 +750,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" ] |
@@ -758,17 +790,25 @@ component("base") { |
} |
# Mac. |
- if (is_mac) { |
+ if (is_mac || is_ios) { |
+ # Common Desktop / iOS excludes |
sources -= [ |
"native_library_posix.cc", |
"strings/sys_string_conversions_posix.cc", |
"threading/platform_thread_internal_posix.cc", |
] |
- # We build with a 10.9 min sdk version but lots of code in this directory is |
- # written to target a 10.6 min sdk version and thus depends on declarations |
- # marked as deprecated on 10.9+. Suppress these warnings for now. |
- cflags = [ "-Wno-deprecated-declarations" ] |
+ 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", |
+ "files/file_path_watcher_fsevents.h", |
+ ] |
+ } |
} else { |
# Non-Mac. |
sources -= [ |
@@ -781,6 +821,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 = [] |
@@ -810,8 +855,60 @@ component("base") { |
} |
} |
+ # iOS |
+ if (is_ios) { |
+ set_sources_assignment_filter([]) |
+ |
+ sources += [ |
+ "atomicops_internals_mac.h", |
+ "base_paths_mac.h", |
+ "base_paths_mac.mm", |
+ "file_version_info_mac.h", |
+ "file_version_info_mac.mm", |
+ "files/file_util_mac.mm", |
+ "mac/bundle_locations.h", |
+ "mac/bundle_locations.mm", |
+ "mac/call_with_eh_frame.cc", |
+ "mac/call_with_eh_frame.h", |
+ "mac/foundation_util.h", |
+ "mac/foundation_util.mm", |
+ "mac/mac_logging.cc", |
+ "mac/mac_logging.h", |
+ "mac/mach_logging.cc", |
+ "mac/mach_logging.h", |
+ "mac/objc_property_releaser.h", |
+ "mac/objc_property_releaser.mm", |
+ "mac/scoped_mach_port.cc", |
+ "mac/scoped_mach_port.h", |
+ "mac/scoped_mach_vm.cc", |
+ "mac/scoped_mach_vm.h", |
+ "mac/scoped_nsautorelease_pool.h", |
+ "mac/scoped_nsautorelease_pool.mm", |
+ "mac/scoped_nsobject.h", |
+ "mac/scoped_objc_class_swizzler.h", |
+ "mac/scoped_objc_class_swizzler.mm", |
+ "message_loop/message_pump_mac.h", |
+ "message_loop/message_pump_mac.mm", |
+ "strings/sys_string_conversions_mac.mm", |
+ "threading/platform_thread_mac.mm", |
+ "time/time_mac.cc", |
+ ] |
+ |
+ set_sources_assignment_filter(sources_assignment_filter) |
+ } |
+ |
+ 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_android && !is_debug) { |
+ if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
configs += [ "//build/config/compiler:optimize_max" ] |
} |
@@ -830,7 +927,7 @@ source_set("base_static") { |
"win/pe_image.h", |
] |
- if (is_android && !is_debug) { |
+ if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
configs += [ "//build/config/compiler:optimize_max" ] |
} |
@@ -883,7 +980,7 @@ component("i18n") { |
"//third_party/icu", |
] |
- if (is_android && !is_debug) { |
+ if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
configs += [ "//build/config/compiler:optimize_max" ] |
} |
@@ -995,7 +1092,7 @@ component("prefs") { |
":base", |
] |
- if (is_android && !is_debug) { |
+ if (!is_debug) { |
configs -= [ "//build/config/compiler:optimize" ] |
configs += [ "//build/config/compiler:optimize_max" ] |
} |
@@ -1056,6 +1153,15 @@ if (is_win) { |
} |
} |
+# TODO(GYP): Delete this after we've converted everything to GN. |
+# The _run targets exist only for compatibility w/ GYP. |
+group("base_unittests_run") { |
+ testonly = true |
+ deps = [ |
+ ":base_unittests", |
+ ] |
+} |
+ |
test("base_unittests") { |
sources = [ |
"android/application_status_listener_unittest.cc", |
@@ -1089,6 +1195,7 @@ test("base_unittests") { |
"containers/linked_list_unittest.cc", |
"containers/mru_cache_unittest.cc", |
"containers/scoped_ptr_hash_map_unittest.cc", |
+ "containers/scoped_ptr_map_unittest.cc", |
"containers/small_map_unittest.cc", |
"containers/stack_container_unittest.cc", |
"cpu_unittest.cc", |
@@ -1136,6 +1243,7 @@ test("base_unittests") { |
"lazy_instance_unittest.cc", |
"logging_unittest.cc", |
"mac/bind_objc_block_unittest.mm", |
+ "mac/call_with_eh_frame_unittest.mm", |
"mac/dispatch_source_mach_unittest.cc", |
"mac/foundation_util_unittest.mm", |
"mac/libdispatch_task_runner_unittest.cc", |
@@ -1159,8 +1267,7 @@ test("base_unittests") { |
"memory/singleton_unittest.cc", |
"memory/weak_ptr_unittest.cc", |
"memory/weak_ptr_unittest.nc", |
- "message_loop/message_loop_proxy_impl_unittest.cc", |
- "message_loop/message_loop_proxy_unittest.cc", |
+ "message_loop/message_loop_task_runner_unittest.cc", |
"message_loop/message_loop_unittest.cc", |
"message_loop/message_pump_io_ios_unittest.cc", |
"metrics/bucket_ranges_unittest.cc", |
@@ -1211,6 +1318,7 @@ test("base_unittests") { |
"sha1_unittest.cc", |
"stl_util_unittest.cc", |
"strings/nullable_string16_unittest.cc", |
+ "strings/pattern_unittest.cc", |
"strings/safe_sprintf_unittest.cc", |
"strings/string16_unittest.cc", |
"strings/string_number_conversions_unittest.cc", |
@@ -1308,9 +1416,6 @@ test("base_unittests") { |
data = [ |
"test/data/", |
- |
- # TODO(dpranke): Remove when icu declares this directly. |
- "$root_out_dir/icudtl.dat", |
] |
# Allow more direct string conversions on platforms with native utf8 |
@@ -1324,14 +1429,15 @@ 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. |
isolate_file = "base_unittests.isolate" |
} |
if (is_ios) { |
sources -= [ |
"process/memory_unittest.cc", |
- "process/memory_unittest_mac.h", |
- "process/memory_unittest_mac.mm", |
"process/process_unittest.cc", |
"process/process_util_unittest.cc", |
] |
@@ -1371,6 +1477,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) { |