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