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 # TODO(brettw) Use "gcc_toolchain.gni" like the Linux toolchains. This requires | 5 # TODO(brettw) Use "gcc_toolchain.gni" like the Linux toolchains. This requires |
6 # some enhancements since the commands on Mac are slightly different than on | 6 # some enhancements since the commands on Mac are slightly different than on |
7 # Linux. | 7 # Linux. |
8 | 8 |
9 import("../goma.gni") | 9 import("../goma.gni") |
10 import("//build/config/clang/clang.gni") | 10 import("//build/config/clang/clang.gni") |
11 if (is_ios) { | 11 if (is_ios) { |
12 import("//build/config/ios/ios_sdk.gni") | 12 import("//build/config/ios/ios_sdk.gni") |
13 } | 13 } |
14 import("//build/config/mac/mac_sdk.gni") | 14 import("//build/config/mac/mac_sdk.gni") |
15 import("//build/config/mac/symbols.gni") | 15 import("//build/config/mac/symbols.gni") |
16 | 16 |
17 assert(host_os == "mac") | 17 assert(host_os == "mac") |
18 | 18 |
19 import("//build/toolchain/cc_wrapper.gni") | 19 import("//build/toolchain/cc_wrapper.gni") |
20 import("//build/toolchain/goma.gni") | 20 import("//build/toolchain/goma.gni") |
21 import("//build/toolchain/toolchain.gni") | 21 import("//build/toolchain/toolchain.gni") |
22 import("//build/toolchain/concurrent_links.gni") | 22 import("//build/toolchain/concurrent_links.gni") |
23 | 23 |
24 if (use_goma) { | |
25 assert(cc_wrapper == "", "Goma and cc_wrapper can't be used together.") | |
26 compiler_prefix = "$goma_dir/gomacc " | |
27 } else if (cc_wrapper != "") { | |
28 compiler_prefix = cc_wrapper + " " | |
29 } else { | |
30 compiler_prefix = "" | |
31 } | |
32 | |
33 if (!use_xcode_clang) { | |
34 compiler_prefix = | |
35 compiler_prefix + rebase_path("$clang_base_path/bin/", root_build_dir) | |
36 } | |
37 | |
38 declare_args() { | 24 declare_args() { |
39 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets | 25 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets |
40 # tools as they can cause lots of I/O contention when invoking ninja with a | 26 # tools as they can cause lots of I/O contention when invoking ninja with a |
41 # large number of parallel jobs (e.g. when using distributed build like goma). | 27 # large number of parallel jobs (e.g. when using distributed build like goma). |
42 bundle_pool_depth = -1 | 28 bundle_pool_depth = -1 |
43 } | 29 } |
44 | 30 |
45 if (current_toolchain == default_toolchain) { | 31 if (current_toolchain == default_toolchain) { |
46 pool("bundle_pool") { | 32 pool("bundle_pool") { |
47 if (bundle_pool_depth == -1) { | 33 if (bundle_pool_depth == -1) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 # build args in this definition. | 65 # build args in this definition. |
80 template("mac_toolchain") { | 66 template("mac_toolchain") { |
81 toolchain(target_name) { | 67 toolchain(target_name) { |
82 assert(defined(invoker.toolchain_cpu), | 68 assert(defined(invoker.toolchain_cpu), |
83 "mac_toolchain() must specify a \"toolchain_cpu\"") | 69 "mac_toolchain() must specify a \"toolchain_cpu\"") |
84 assert(defined(invoker.toolchain_os), | 70 assert(defined(invoker.toolchain_os), |
85 "mac_toolchain() must specify a \"toolchain_os\"") | 71 "mac_toolchain() must specify a \"toolchain_os\"") |
86 | 72 |
87 # concurrent_links is picked up from the declare_arg(). | 73 # concurrent_links is picked up from the declare_arg(). |
88 | 74 |
89 cc = "${compiler_prefix}clang" | 75 if (use_goma) { |
90 cxx = "${compiler_prefix}clang++" | 76 assert(cc_wrapper == "", "Goma and cc_wrapper can't be used together.") |
| 77 _compiler_prefix = "$goma_dir/gomacc " |
| 78 } else if (cc_wrapper != "") { |
| 79 _compiler_prefix = cc_wrapper + " " |
| 80 } else { |
| 81 _compiler_prefix = "" |
| 82 } |
| 83 |
| 84 if (invoker.toolchain_os != "ios" || !use_xcode_clang) { |
| 85 _compiler_prefix += rebase_path("$clang_base_path/bin/", root_build_dir) |
| 86 } |
| 87 |
| 88 cc = "${_compiler_prefix}clang" |
| 89 cxx = "${_compiler_prefix}clang++" |
91 ld = cxx | 90 ld = cxx |
92 | 91 |
93 linker_driver = | 92 linker_driver = |
94 "TOOL_VERSION=${tool_versions.linker_driver} " + | 93 "TOOL_VERSION=${tool_versions.linker_driver} " + |
95 rebase_path("//build/toolchain/mac/linker_driver.py", root_build_dir) | 94 rebase_path("//build/toolchain/mac/linker_driver.py", root_build_dir) |
96 | 95 |
97 if (invoker.toolchain_os == "ios" && additional_toolchains != []) { | 96 if (invoker.toolchain_os == "ios" && additional_toolchains != []) { |
98 # For a fat build, the generation of dSYM needs to be performed after the | 97 # For a fat build, the generation of dSYM needs to be performed after the |
99 # generation of the fat binaries using "lipo". So disable the generation | 98 # generation of the fat binaries using "lipo". So disable the generation |
100 # of the dSYM for intermediate architecture specific binaries. | 99 # of the dSYM for intermediate architecture specific binaries. |
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 mac_toolchain("ios_clang_x86") { | 415 mac_toolchain("ios_clang_x86") { |
417 toolchain_cpu = "x86" | 416 toolchain_cpu = "x86" |
418 toolchain_os = "ios" | 417 toolchain_os = "ios" |
419 } | 418 } |
420 | 419 |
421 mac_toolchain("ios_clang_x64") { | 420 mac_toolchain("ios_clang_x64") { |
422 toolchain_cpu = "x64" | 421 toolchain_cpu = "x64" |
423 toolchain_os = "ios" | 422 toolchain_os = "ios" |
424 } | 423 } |
425 } | 424 } |
OLD | NEW |