| 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 import("//build/config/clang/clang.gni") | 5 import("//build/config/clang/clang.gni") |
| 6 import("//build/config/compiler/compiler.gni") | 6 import("//build/config/compiler/compiler.gni") |
| 7 import("//build/config/sanitizers/sanitizers.gni") | 7 import("//build/config/sanitizers/sanitizers.gni") |
| 8 import("//build/config/win/visual_studio_version.gni") | 8 import("//build/config/win/visual_studio_version.gni") |
| 9 import("//build/toolchain/goma.gni") | 9 import("//build/toolchain/goma.gni") |
| 10 import("//build/toolchain/toolchain.gni") | 10 import("//build/toolchain/toolchain.gni") |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 command = stamp_command | 305 command = stamp_command |
| 306 description = stamp_description | 306 description = stamp_description |
| 307 } | 307 } |
| 308 tool("copy") { | 308 tool("copy") { |
| 309 command = copy_command | 309 command = copy_command |
| 310 description = copy_description | 310 description = copy_description |
| 311 } | 311 } |
| 312 } | 312 } |
| 313 } | 313 } |
| 314 | 314 |
| 315 if (is_clang) { | |
| 316 sys_include_prefix = "-imsvc" | |
| 317 } else { | |
| 318 # MSVC doesn't have the concept of system headers. | |
| 319 sys_include_prefix = "/I" | |
| 320 } | |
| 321 | |
| 322 if (host_os == "win") { | 315 if (host_os == "win") { |
| 323 clang_cl = "clang-cl.exe" | 316 clang_cl = "clang-cl.exe" |
| 324 } else { | 317 } else { |
| 325 clang_cl = "clang-cl" | 318 clang_cl = "clang-cl" |
| 326 } | 319 } |
| 327 | 320 |
| 328 # 32-bit toolchains. Only define these when the target architecture is 32-bit | 321 # 32-bit toolchains. Only define these when the target architecture is 32-bit |
| 329 # since we don't do any 32-bit cross compiles when targeting 64-bit (the | 322 # since we don't do any 32-bit cross compiles when targeting 64-bit (the |
| 330 # build does generate some 64-bit stuff from 32-bit target builds). | 323 # build does generate some 64-bit stuff from 32-bit target builds). |
| 331 if (target_cpu == "x86") { | 324 if (target_cpu == "x86") { |
| 332 x86_toolchain_data = exec_script("setup_toolchain.py", | 325 x86_toolchain_data = exec_script("setup_toolchain.py", |
| 333 [ | 326 [ |
| 334 visual_studio_path, | 327 visual_studio_path, |
| 335 windows_sdk_path, | 328 windows_sdk_path, |
| 336 visual_studio_runtime_dirs, | 329 visual_studio_runtime_dirs, |
| 337 "x86", | 330 "x86", |
| 338 "${sys_include_prefix}", | |
| 339 ], | 331 ], |
| 340 "scope") | 332 "scope") |
| 341 | 333 |
| 342 msvc_toolchain("x86") { | 334 msvc_toolchain("x86") { |
| 343 environment = "environment.x86" | 335 environment = "environment.x86" |
| 344 cl = "${goma_prefix}\"${x86_toolchain_data.vc_bin_dir}/cl.exe\"" | 336 cl = "${goma_prefix}\"${x86_toolchain_data.vc_bin_dir}/cl.exe\"" |
| 345 toolchain_args = { | 337 toolchain_args = { |
| 346 current_cpu = "x86" | 338 current_cpu = "x86" |
| 347 is_clang = false | 339 is_clang = false |
| 348 } | 340 } |
| 349 } | 341 } |
| 350 | 342 |
| 351 msvc_toolchain("clang_x86") { | 343 msvc_toolchain("clang_x86") { |
| 352 environment = "environment.x86" | 344 environment = "environment.x86" |
| 353 prefix = rebase_path("$clang_base_path/bin", root_build_dir) | 345 prefix = rebase_path("$clang_base_path/bin", root_build_dir) |
| 354 cl = "${goma_prefix}$prefix/${clang_cl}" | 346 cl = "${goma_prefix}$prefix/${clang_cl}" |
| 355 sys_include_flags = "${x86_toolchain_data.include_flags}" | 347 sys_include_flags = "${x86_toolchain_data.include_flags_imsvc}" |
| 356 | 348 |
| 357 toolchain_args = { | 349 toolchain_args = { |
| 358 current_cpu = "x86" | 350 current_cpu = "x86" |
| 359 is_clang = true | 351 is_clang = true |
| 360 } | 352 } |
| 361 } | 353 } |
| 362 } | 354 } |
| 363 | 355 |
| 364 # 64-bit toolchains. | 356 # 64-bit toolchains. |
| 365 x64_toolchain_data = exec_script("setup_toolchain.py", | 357 x64_toolchain_data = exec_script("setup_toolchain.py", |
| 366 [ | 358 [ |
| 367 visual_studio_path, | 359 visual_studio_path, |
| 368 windows_sdk_path, | 360 windows_sdk_path, |
| 369 visual_studio_runtime_dirs, | 361 visual_studio_runtime_dirs, |
| 370 "x64", | 362 "x64", |
| 371 "${sys_include_prefix}", | |
| 372 ], | 363 ], |
| 373 "scope") | 364 "scope") |
| 374 | 365 |
| 375 template("win_x64_toolchains") { | 366 template("win_x64_toolchains") { |
| 376 msvc_toolchain(target_name) { | 367 msvc_toolchain(target_name) { |
| 377 environment = "environment.x64" | 368 environment = "environment.x64" |
| 378 cl = "${goma_prefix}\"${x64_toolchain_data.vc_bin_dir}/cl.exe\"" | 369 cl = "${goma_prefix}\"${x64_toolchain_data.vc_bin_dir}/cl.exe\"" |
| 379 | 370 |
| 380 toolchain_args = { | 371 toolchain_args = { |
| 381 if (defined(invoker.toolchain_args)) { | 372 if (defined(invoker.toolchain_args)) { |
| 382 forward_variables_from(invoker.toolchain_args, "*") | 373 forward_variables_from(invoker.toolchain_args, "*") |
| 383 } | 374 } |
| 384 is_clang = false | 375 is_clang = false |
| 385 current_cpu = "x64" | 376 current_cpu = "x64" |
| 386 } | 377 } |
| 387 } | 378 } |
| 388 | 379 |
| 389 msvc_toolchain("clang_" + target_name) { | 380 msvc_toolchain("clang_" + target_name) { |
| 390 environment = "environment.x64" | 381 environment = "environment.x64" |
| 391 prefix = rebase_path("$clang_base_path/bin", root_build_dir) | 382 prefix = rebase_path("$clang_base_path/bin", root_build_dir) |
| 392 cl = "${goma_prefix}$prefix/${clang_cl}" | 383 cl = "${goma_prefix}$prefix/${clang_cl}" |
| 393 sys_include_flags = "${x64_toolchain_data.include_flags}" | 384 sys_include_flags = "${x64_toolchain_data.include_flags_imsvc}" |
| 394 | 385 |
| 395 toolchain_args = { | 386 toolchain_args = { |
| 396 if (defined(invoker.toolchain_args)) { | 387 if (defined(invoker.toolchain_args)) { |
| 397 forward_variables_from(invoker.toolchain_args, "*") | 388 forward_variables_from(invoker.toolchain_args, "*") |
| 398 } | 389 } |
| 399 is_clang = true | 390 is_clang = true |
| 400 current_cpu = "x64" | 391 current_cpu = "x64" |
| 401 } | 392 } |
| 402 } | 393 } |
| 403 } | 394 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 msvc_toolchain("winrt_x64") { | 430 msvc_toolchain("winrt_x64") { |
| 440 environment = "environment.winrt_x64" | 431 environment = "environment.winrt_x64" |
| 441 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\"" | 432 cl = "${goma_prefix}\"${vc_bin_dir}/cl.exe\"" |
| 442 | 433 |
| 443 toolchain_args = { | 434 toolchain_args = { |
| 444 is_clang = false | 435 is_clang = false |
| 445 current_cpu = "x64" | 436 current_cpu = "x64" |
| 446 } | 437 } |
| 447 } | 438 } |
| 448 } | 439 } |
| OLD | NEW |