1*6777b538SAndroid Build Coastguard Worker# Copyright 2015 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Workerimport("//build/config/clang/clang.gni") 6*6777b538SAndroid Build Coastguard Workerimport("//build/config/sanitizers/sanitizers.gni") 7*6777b538SAndroid Build Coastguard Workerimport("//build/config/win/manifest.gni") 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker# Depending on this target will cause the manifests for Chrome's default 10*6777b538SAndroid Build Coastguard Worker# Windows and common control compatibility and elevation for executables. 11*6777b538SAndroid Build Coastguard Workerwindows_manifest("default_exe_manifest") { 12*6777b538SAndroid Build Coastguard Worker sources = [ 13*6777b538SAndroid Build Coastguard Worker as_invoker_manifest, 14*6777b538SAndroid Build Coastguard Worker common_controls_manifest, 15*6777b538SAndroid Build Coastguard Worker default_compatibility_manifest, 16*6777b538SAndroid Build Coastguard Worker ] 17*6777b538SAndroid Build Coastguard Worker} 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Workerif (is_win) { 20*6777b538SAndroid Build Coastguard Worker assert(host_os != "mac" || target_cpu != "x86", 21*6777b538SAndroid Build Coastguard Worker "Windows cross-builds from Mac must be 64-bit.") 22*6777b538SAndroid Build Coastguard Worker 23*6777b538SAndroid Build Coastguard Worker action("copy_cdb_to_output") { 24*6777b538SAndroid Build Coastguard Worker script = "//build/win/copy_cdb_to_output.py" 25*6777b538SAndroid Build Coastguard Worker inputs = [ 26*6777b538SAndroid Build Coastguard Worker script, 27*6777b538SAndroid Build Coastguard Worker "//build/vs_toolchain.py", 28*6777b538SAndroid Build Coastguard Worker ] 29*6777b538SAndroid Build Coastguard Worker outputs = [ 30*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/cdb.exe", 31*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/dbgeng.dll", 32*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/dbghelp.dll", 33*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/dbgmodel.dll", 34*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/winext/ext.dll", 35*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/winext/uext.dll", 36*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/winxp/exts.dll", 37*6777b538SAndroid Build Coastguard Worker "$root_out_dir/cdb/winxp/ntsdexts.dll", 38*6777b538SAndroid Build Coastguard Worker ] 39*6777b538SAndroid Build Coastguard Worker args = [ 40*6777b538SAndroid Build Coastguard Worker rebase_path("$root_out_dir/cdb", root_out_dir), 41*6777b538SAndroid Build Coastguard Worker current_cpu, 42*6777b538SAndroid Build Coastguard Worker ] 43*6777b538SAndroid Build Coastguard Worker } 44*6777b538SAndroid Build Coastguard Worker 45*6777b538SAndroid Build Coastguard Worker group("runtime_libs") { 46*6777b538SAndroid Build Coastguard Worker # These are needed for any tests that need to decode stacks. 47*6777b538SAndroid Build Coastguard Worker data = [ 48*6777b538SAndroid Build Coastguard Worker "$root_out_dir/dbghelp.dll", 49*6777b538SAndroid Build Coastguard Worker "$root_out_dir/dbgcore.dll", 50*6777b538SAndroid Build Coastguard Worker ] 51*6777b538SAndroid Build Coastguard Worker if (is_component_build) { 52*6777b538SAndroid Build Coastguard Worker # Copy the VS runtime DLLs into the isolate so that they don't have to be 53*6777b538SAndroid Build Coastguard Worker # preinstalled on the target machine. The debug runtimes have a "d" at 54*6777b538SAndroid Build Coastguard Worker # the end. 55*6777b538SAndroid Build Coastguard Worker if (is_debug) { 56*6777b538SAndroid Build Coastguard Worker vcrt_suffix = "d" 57*6777b538SAndroid Build Coastguard Worker } else { 58*6777b538SAndroid Build Coastguard Worker vcrt_suffix = "" 59*6777b538SAndroid Build Coastguard Worker } 60*6777b538SAndroid Build Coastguard Worker 61*6777b538SAndroid Build Coastguard Worker # These runtime files are copied to the output directory by the 62*6777b538SAndroid Build Coastguard Worker # vs_toolchain script that runs as part of toolchain configuration. 63*6777b538SAndroid Build Coastguard Worker data += [ 64*6777b538SAndroid Build Coastguard Worker "$root_out_dir/msvcp140${vcrt_suffix}.dll", 65*6777b538SAndroid Build Coastguard Worker "$root_out_dir/vccorlib140${vcrt_suffix}.dll", 66*6777b538SAndroid Build Coastguard Worker "$root_out_dir/vcruntime140${vcrt_suffix}.dll", 67*6777b538SAndroid Build Coastguard Worker ] 68*6777b538SAndroid Build Coastguard Worker if (current_cpu == "x64") { 69*6777b538SAndroid Build Coastguard Worker data += [ "$root_out_dir/vcruntime140_1${vcrt_suffix}.dll" ] 70*6777b538SAndroid Build Coastguard Worker } 71*6777b538SAndroid Build Coastguard Worker if (is_debug) { 72*6777b538SAndroid Build Coastguard Worker data += [ "$root_out_dir/ucrtbased.dll" ] 73*6777b538SAndroid Build Coastguard Worker } 74*6777b538SAndroid Build Coastguard Worker if (is_asan) { 75*6777b538SAndroid Build Coastguard Worker assert(target_cpu == "x64", 76*6777b538SAndroid Build Coastguard Worker "ASan is only supported in 64-bit builds on Windows.") 77*6777b538SAndroid Build Coastguard Worker data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ] 78*6777b538SAndroid Build Coastguard Worker } 79*6777b538SAndroid Build Coastguard Worker } 80*6777b538SAndroid Build Coastguard Worker } 81*6777b538SAndroid Build Coastguard Worker} 82