xref: /aosp_15_r20/external/angle/build/win/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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