OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 declare_args() { | 5 declare_args() { |
6 # Path to the directory containing the VC binaries for the right | 6 # Path to the directory containing the VC binaries for the right |
7 # combination of host and target architectures. Currently only the | 7 # combination of host and target architectures. Currently only the |
8 # 64-bit host toolchain is supported, with either 32-bit or 64-bit targets. | 8 # 64-bit host toolchain is supported, with either 32-bit or 64-bit targets. |
9 # If vc_bin_dir is not specified on the command line (and it normally | 9 # If vc_bin_dir is not specified on the command line (and it normally |
10 # isn't), we will dynamically determine the right value to use at runtime. | 10 # isn't), we will dynamically determine the right value to use at runtime. |
11 vc_bin_dir = "" | 11 vc_bin_dir = "" |
12 } | 12 } |
13 | 13 |
14 import("//build/config/win/visual_studio_version.gni") | 14 import("//build/config/win/visual_studio_version.gni") |
15 import("//build/toolchain/goma.gni") | 15 import("//build/toolchain/goma.gni") |
| 16 import("//build/toolchain/toolchain.gni") |
16 | 17 |
17 # Should only be running on Windows. | 18 # Should only be running on Windows. |
18 assert(is_win) | 19 assert(is_win) |
19 | 20 |
20 # Setup the Visual Studio state. | 21 # Setup the Visual Studio state. |
21 # | 22 # |
22 # Its arguments are the VS path and the compiler wrapper tool. It will write | 23 # Its arguments are the VS path and the compiler wrapper tool. It will write |
23 # "environment.x86" and "environment.x64" to the build directory and return a | 24 # "environment.x86" and "environment.x64" to the build directory and return a |
24 # list to us. | 25 # list to us. |
25 gyp_win_tool_path = | 26 gyp_win_tool_path = |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 description = "LINK {{output}}" | 208 description = "LINK {{output}}" |
208 outputs = [ | 209 outputs = [ |
209 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", | 210 "{{root_out_dir}}/{{target_output_name}}{{output_extension}}", |
210 ] | 211 ] |
211 | 212 |
212 # The use of inputs_newline is to work around a fixed per-line buffer | 213 # The use of inputs_newline is to work around a fixed per-line buffer |
213 # size in the linker. | 214 # size in the linker. |
214 rspfile_content = "{{inputs_newline}} {{libs}} {{solibs}} {{ldflags}}" | 215 rspfile_content = "{{inputs_newline}} {{libs}} {{solibs}} {{ldflags}}" |
215 } | 216 } |
216 | 217 |
| 218 # These two are really entirely generic, but have to be repeated in |
| 219 # each toolchain because GN doesn't allow a template to be used here. |
| 220 # See //build/toolchain/toolchain.gni for details. |
217 tool("stamp") { | 221 tool("stamp") { |
218 command = "$python_path gyp-win-tool stamp {{output}}" | 222 command = stamp_command |
219 description = "STAMP {{output}}" | 223 description = stamp_description |
220 } | 224 } |
221 | |
222 tool("copy") { | 225 tool("copy") { |
223 command = | 226 command = copy_command |
224 "$python_path gyp-win-tool recursive-mirror {{source}} {{output}}" | 227 description = copy_description |
225 description = "COPY {{source}} {{output}}" | |
226 } | 228 } |
227 | 229 |
228 # When invoking this toolchain not as the default one, these args will be | 230 # When invoking this toolchain not as the default one, these args will be |
229 # passed to the build. They are ignored when this is the default toolchain. | 231 # passed to the build. They are ignored when this is the default toolchain. |
230 toolchain_args() { | 232 toolchain_args() { |
231 current_cpu = invoker.current_cpu | 233 current_cpu = invoker.current_cpu |
232 if (defined(invoker.is_clang)) { | 234 if (defined(invoker.is_clang)) { |
233 is_clang = invoker.is_clang | 235 is_clang = invoker.is_clang |
234 } | 236 } |
235 current_os = invoker.current_os | 237 current_os = invoker.current_os |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
288 } | 290 } |
289 | 291 |
290 msvc_toolchain("winrt_x64") { | 292 msvc_toolchain("winrt_x64") { |
291 environment = "environment.winrt_x64" | 293 environment = "environment.winrt_x64" |
292 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\"" | 294 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\"" |
293 is_clang = false | 295 is_clang = false |
294 | 296 |
295 current_cpu = "x64" | 297 current_cpu = "x64" |
296 current_os = current_os | 298 current_os = current_os |
297 } | 299 } |
OLD | NEW |