BUILD.gn 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. # Copyright 2015 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//build/config/clang/clang.gni")
  5. import("//build/config/sanitizers/sanitizers.gni")
  6. import("//build/config/win/manifest.gni")
  7. # Depending on this target will cause the manifests for Chrome's default
  8. # Windows and common control compatibility and elevation for executables.
  9. windows_manifest("default_exe_manifest") {
  10. sources = [
  11. as_invoker_manifest,
  12. common_controls_manifest,
  13. default_compatibility_manifest,
  14. ]
  15. }
  16. if (is_win) {
  17. assert(host_os != "mac" || target_cpu != "x86",
  18. "Windows cross-builds from Mac must be 64-bit.")
  19. action("copy_cdb_to_output") {
  20. script = "//build/win/copy_cdb_to_output.py"
  21. inputs = [
  22. script,
  23. "//build/vs_toolchain.py",
  24. ]
  25. outputs = [
  26. "$root_out_dir/cdb/cdb.exe",
  27. "$root_out_dir/cdb/dbgeng.dll",
  28. "$root_out_dir/cdb/dbghelp.dll",
  29. "$root_out_dir/cdb/dbgmodel.dll",
  30. "$root_out_dir/cdb/winext/ext.dll",
  31. "$root_out_dir/cdb/winext/uext.dll",
  32. "$root_out_dir/cdb/winxp/exts.dll",
  33. "$root_out_dir/cdb/winxp/ntsdexts.dll",
  34. ]
  35. if (current_cpu != "arm64") {
  36. # The UCRT files are not redistributable for ARM64 Win32.
  37. outputs += [
  38. "$root_out_dir/cdb/api-ms-win-core-console-l1-1-0.dll",
  39. "$root_out_dir/cdb/api-ms-win-core-datetime-l1-1-0.dll",
  40. "$root_out_dir/cdb/api-ms-win-core-debug-l1-1-0.dll",
  41. "$root_out_dir/cdb/api-ms-win-core-errorhandling-l1-1-0.dll",
  42. "$root_out_dir/cdb/api-ms-win-core-file-l1-1-0.dll",
  43. "$root_out_dir/cdb/api-ms-win-core-file-l1-2-0.dll",
  44. "$root_out_dir/cdb/api-ms-win-core-file-l2-1-0.dll",
  45. "$root_out_dir/cdb/api-ms-win-core-handle-l1-1-0.dll",
  46. "$root_out_dir/cdb/api-ms-win-core-heap-l1-1-0.dll",
  47. "$root_out_dir/cdb/api-ms-win-core-interlocked-l1-1-0.dll",
  48. "$root_out_dir/cdb/api-ms-win-core-libraryloader-l1-1-0.dll",
  49. "$root_out_dir/cdb/api-ms-win-core-localization-l1-2-0.dll",
  50. "$root_out_dir/cdb/api-ms-win-core-memory-l1-1-0.dll",
  51. "$root_out_dir/cdb/api-ms-win-core-namedpipe-l1-1-0.dll",
  52. "$root_out_dir/cdb/api-ms-win-core-processenvironment-l1-1-0.dll",
  53. "$root_out_dir/cdb/api-ms-win-core-processthreads-l1-1-0.dll",
  54. "$root_out_dir/cdb/api-ms-win-core-processthreads-l1-1-1.dll",
  55. "$root_out_dir/cdb/api-ms-win-core-profile-l1-1-0.dll",
  56. "$root_out_dir/cdb/api-ms-win-core-rtlsupport-l1-1-0.dll",
  57. "$root_out_dir/cdb/api-ms-win-core-string-l1-1-0.dll",
  58. "$root_out_dir/cdb/api-ms-win-core-synch-l1-1-0.dll",
  59. "$root_out_dir/cdb/api-ms-win-core-synch-l1-2-0.dll",
  60. "$root_out_dir/cdb/api-ms-win-core-sysinfo-l1-1-0.dll",
  61. "$root_out_dir/cdb/api-ms-win-core-timezone-l1-1-0.dll",
  62. "$root_out_dir/cdb/api-ms-win-core-util-l1-1-0.dll",
  63. "$root_out_dir/cdb/api-ms-win-crt-conio-l1-1-0.dll",
  64. "$root_out_dir/cdb/api-ms-win-crt-convert-l1-1-0.dll",
  65. "$root_out_dir/cdb/api-ms-win-crt-environment-l1-1-0.dll",
  66. "$root_out_dir/cdb/api-ms-win-crt-filesystem-l1-1-0.dll",
  67. "$root_out_dir/cdb/api-ms-win-crt-heap-l1-1-0.dll",
  68. "$root_out_dir/cdb/api-ms-win-crt-locale-l1-1-0.dll",
  69. "$root_out_dir/cdb/api-ms-win-crt-math-l1-1-0.dll",
  70. "$root_out_dir/cdb/api-ms-win-crt-multibyte-l1-1-0.dll",
  71. "$root_out_dir/cdb/api-ms-win-crt-private-l1-1-0.dll",
  72. "$root_out_dir/cdb/api-ms-win-crt-process-l1-1-0.dll",
  73. "$root_out_dir/cdb/api-ms-win-crt-runtime-l1-1-0.dll",
  74. "$root_out_dir/cdb/api-ms-win-crt-stdio-l1-1-0.dll",
  75. "$root_out_dir/cdb/api-ms-win-crt-string-l1-1-0.dll",
  76. "$root_out_dir/cdb/api-ms-win-crt-time-l1-1-0.dll",
  77. "$root_out_dir/cdb/api-ms-win-crt-utility-l1-1-0.dll",
  78. "$root_out_dir/cdb/api-ms-win-downlevel-kernel32-l2-1-0.dll",
  79. "$root_out_dir/cdb/api-ms-win-eventing-provider-l1-1-0.dll",
  80. "$root_out_dir/cdb/ucrtbase.dll",
  81. ]
  82. }
  83. args = [
  84. rebase_path("$root_out_dir/cdb", root_out_dir),
  85. current_cpu,
  86. ]
  87. }
  88. group("runtime_libs") {
  89. data = []
  90. if (is_component_build) {
  91. # Copy the VS runtime DLLs into the isolate so that they don't have to be
  92. # preinstalled on the target machine. The debug runtimes have a "d" at
  93. # the end.
  94. if (is_debug) {
  95. vcrt_suffix = "d"
  96. } else {
  97. vcrt_suffix = ""
  98. }
  99. # These runtime files are copied to the output directory by the
  100. # vs_toolchain script that runs as part of toolchain configuration.
  101. data += [
  102. "$root_out_dir/msvcp140${vcrt_suffix}.dll",
  103. "$root_out_dir/vccorlib140${vcrt_suffix}.dll",
  104. "$root_out_dir/vcruntime140${vcrt_suffix}.dll",
  105. ]
  106. if (current_cpu == "x64") {
  107. data += [ "$root_out_dir/vcruntime140_1${vcrt_suffix}.dll" ]
  108. }
  109. if (is_debug) {
  110. data += [ "$root_out_dir/ucrtbased.dll" ]
  111. }
  112. if (is_asan) {
  113. assert(target_cpu == "x64",
  114. "ASan is only supported in 64-bit builds on Windows.")
  115. data += [ "$clang_base_path/lib/clang/$clang_version/lib/windows/clang_rt.asan_dynamic-x86_64.dll" ]
  116. }
  117. if (current_cpu != "arm64") {
  118. data += [
  119. # Universal Windows 10 CRT files
  120. "$root_out_dir/api-ms-win-core-console-l1-1-0.dll",
  121. "$root_out_dir/api-ms-win-core-datetime-l1-1-0.dll",
  122. "$root_out_dir/api-ms-win-core-debug-l1-1-0.dll",
  123. "$root_out_dir/api-ms-win-core-errorhandling-l1-1-0.dll",
  124. "$root_out_dir/api-ms-win-core-file-l1-1-0.dll",
  125. "$root_out_dir/api-ms-win-core-file-l1-2-0.dll",
  126. "$root_out_dir/api-ms-win-core-file-l2-1-0.dll",
  127. "$root_out_dir/api-ms-win-core-handle-l1-1-0.dll",
  128. "$root_out_dir/api-ms-win-core-heap-l1-1-0.dll",
  129. "$root_out_dir/api-ms-win-core-interlocked-l1-1-0.dll",
  130. "$root_out_dir/api-ms-win-core-libraryloader-l1-1-0.dll",
  131. "$root_out_dir/api-ms-win-core-localization-l1-2-0.dll",
  132. "$root_out_dir/api-ms-win-core-memory-l1-1-0.dll",
  133. "$root_out_dir/api-ms-win-core-namedpipe-l1-1-0.dll",
  134. "$root_out_dir/api-ms-win-core-processenvironment-l1-1-0.dll",
  135. "$root_out_dir/api-ms-win-core-processthreads-l1-1-0.dll",
  136. "$root_out_dir/api-ms-win-core-processthreads-l1-1-1.dll",
  137. "$root_out_dir/api-ms-win-core-profile-l1-1-0.dll",
  138. "$root_out_dir/api-ms-win-core-rtlsupport-l1-1-0.dll",
  139. "$root_out_dir/api-ms-win-core-string-l1-1-0.dll",
  140. "$root_out_dir/api-ms-win-core-synch-l1-1-0.dll",
  141. "$root_out_dir/api-ms-win-core-synch-l1-2-0.dll",
  142. "$root_out_dir/api-ms-win-core-sysinfo-l1-1-0.dll",
  143. "$root_out_dir/api-ms-win-core-timezone-l1-1-0.dll",
  144. "$root_out_dir/api-ms-win-core-util-l1-1-0.dll",
  145. "$root_out_dir/api-ms-win-crt-conio-l1-1-0.dll",
  146. "$root_out_dir/api-ms-win-crt-convert-l1-1-0.dll",
  147. "$root_out_dir/api-ms-win-crt-environment-l1-1-0.dll",
  148. "$root_out_dir/api-ms-win-crt-filesystem-l1-1-0.dll",
  149. "$root_out_dir/api-ms-win-crt-heap-l1-1-0.dll",
  150. "$root_out_dir/api-ms-win-crt-locale-l1-1-0.dll",
  151. "$root_out_dir/api-ms-win-crt-math-l1-1-0.dll",
  152. "$root_out_dir/api-ms-win-crt-multibyte-l1-1-0.dll",
  153. "$root_out_dir/api-ms-win-crt-private-l1-1-0.dll",
  154. "$root_out_dir/api-ms-win-crt-process-l1-1-0.dll",
  155. "$root_out_dir/api-ms-win-crt-runtime-l1-1-0.dll",
  156. "$root_out_dir/api-ms-win-crt-stdio-l1-1-0.dll",
  157. "$root_out_dir/api-ms-win-crt-string-l1-1-0.dll",
  158. "$root_out_dir/api-ms-win-crt-time-l1-1-0.dll",
  159. "$root_out_dir/api-ms-win-crt-utility-l1-1-0.dll",
  160. "$root_out_dir/api-ms-win-downlevel-kernel32-l2-1-0.dll",
  161. "$root_out_dir/api-ms-win-eventing-provider-l1-1-0.dll",
  162. ]
  163. if (!is_debug) {
  164. data += [ "$root_out_dir/ucrtbase.dll" ]
  165. }
  166. }
  167. }
  168. }
  169. }