| # Copyright 2015 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/clang/clang.gni") |
| import("//build/config/sanitizers/sanitizers.gni") |
| import("//build/config/win/manifest.gni") |
| |
| if (is_starboard) { |
| # Never use a manifest in Starboard. |
| group("default_exe_manifest") {} |
| } else { |
| # Depending on this target will cause the manifests for Chrome's default |
| # Windows and common control compatibility and elevation for executables. |
| windows_manifest("default_exe_manifest") { |
| sources = [ |
| as_invoker_manifest, |
| common_controls_manifest, |
| default_compatibility_manifest, |
| ] |
| } |
| } |
| |
| if (is_win) { |
| assert(host_os != "mac" || target_cpu != "x86", |
| "Windows cross-builds from Mac must be 64-bit.") |
| |
| if (!is_starboard) { |
| action("copy_cdb_to_output") { |
| script = "//build/win/copy_cdb_to_output.py" |
| inputs = [ |
| script, |
| "//build/vs_toolchain.py", |
| ] |
| outputs = [ |
| "$root_out_dir/cdb/cdb.exe", |
| "$root_out_dir/cdb/dbgeng.dll", |
| "$root_out_dir/cdb/dbghelp.dll", |
| "$root_out_dir/cdb/dbgmodel.dll", |
| "$root_out_dir/cdb/winext/ext.dll", |
| "$root_out_dir/cdb/winext/uext.dll", |
| "$root_out_dir/cdb/winxp/exts.dll", |
| "$root_out_dir/cdb/winxp/ntsdexts.dll", |
| ] |
| args = [ |
| rebase_path("$root_out_dir/cdb", root_out_dir), |
| current_cpu, |
| ] |
| } |
| } |
| |
| group("runtime_libs") { |
| # These are needed for any tests that need to decode stacks. |
| data = [ |
| "$root_out_dir/dbghelp.dll", |
| "$root_out_dir/dbgcore.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/msvcp140${vcrt_suffix}.dll", |
| "$root_out_dir/vccorlib140${vcrt_suffix}.dll", |
| "$root_out_dir/vcruntime140${vcrt_suffix}.dll", |
| ] |
| if (current_cpu == "x64") { |
| data += [ "$root_out_dir/vcruntime140_1${vcrt_suffix}.dll" ] |
| } |
| if (is_debug) { |
| data += [ "$root_out_dir/ucrtbased.dll" ] |
| } |
| if (is_asan) { |
| assert(target_cpu == "x64", |
| "ASan is only supported in 64-bit builds on Windows.") |
| data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ] |
| } |
| } |
| } |
| } |