Chromium Code Reviews| Index: build/config/BUILDCONFIG.gn |
| diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn |
| index 234332b8547e95b0185e9bc4bcaaf1c1bfedcf63..b413c67fa85245275cfaa1aba0bbc06cde7a8137 100644 |
| --- a/build/config/BUILDCONFIG.gn |
| +++ b/build/config/BUILDCONFIG.gn |
| @@ -125,12 +125,9 @@ declare_args() { |
| is_clang = current_os == "mac" || current_os == "ios" || |
| current_os == "linux" || current_os == "chromeos" |
| - if (current_os == "chromeos") { |
| - # Allows the target toolchain to be injected as arguments. This is needed |
| - # to support the CrOS build system which supports per-build-configuration |
| - # toolchains. |
| - cros_use_custom_toolchain = false |
| - } |
| + # Allows the path to a custom target toolchain to be injected as a single |
| + # argument, and set as the default toolchain. |
| + custom_toolchain = "" |
| # DON'T ADD MORE FLAGS HERE. Read the comment above. |
| } |
| @@ -488,6 +485,7 @@ set_defaults("test") { |
| # which will identify the toolchain corresponding to the local system when |
| # doing cross-compiles. When not cross-compiling, this will be the same as the |
| # default toolchain. |
| +_default_toolchain = "" |
| if (is_win) { |
| # On windows we use the same toolchain for host and target by default. |
| @@ -498,11 +496,11 @@ if (is_win) { |
| } |
| if (current_os == "win") { |
| - set_default_toolchain("$host_toolchain") |
| + _default_toolchain = host_toolchain |
| } else if (current_cpu == "x64") { # WinRT x64 |
| - set_default_toolchain("//build/toolchain/win:winrt_x64") |
| + _default_toolchain = "//build/toolchain/win:winrt_x64" |
| } else if (current_cpu == "x86") { # WinRT x86 |
| - set_default_toolchain("//build/toolchain/win:winrt_x86") |
| + _default_toolchain = "//build/toolchain/win:winrt_x86" |
| } |
| } else if (is_android) { |
| if (host_os == "linux") { |
| @@ -518,27 +516,24 @@ if (is_win) { |
| assert(false, "Unknown host for android cross compile") |
| } |
| if (is_clang) { |
| - set_default_toolchain("//build/toolchain/android:clang_$current_cpu") |
| + _default_toolchain = "//build/toolchain/android:clang_$current_cpu" |
| } else { |
| - set_default_toolchain("//build/toolchain/android:$current_cpu") |
| + _default_toolchain = "//build/toolchain/android:$current_cpu" |
| } |
| } else if (is_linux) { |
| if (is_clang) { |
| host_toolchain = "//build/toolchain/linux:clang_$host_cpu" |
| - set_default_toolchain("//build/toolchain/linux:clang_$current_cpu") |
| + _default_toolchain = "//build/toolchain/linux:clang_$current_cpu" |
| } else { |
| host_toolchain = "//build/toolchain/linux:$host_cpu" |
| - set_default_toolchain("//build/toolchain/linux:$current_cpu") |
| - } |
| - if (is_chromeos && cros_use_custom_toolchain) { |
| - set_default_toolchain("//build/toolchain/cros:target") |
| + _default_toolchain = "//build/toolchain/linux:$current_cpu" |
| } |
| } else if (is_mac) { |
| host_toolchain = "//build/toolchain/mac:clang_x64" |
| - set_default_toolchain(host_toolchain) |
| + _default_toolchain = host_toolchain |
| } else if (is_ios) { |
| host_toolchain = "//build/toolchain/mac:clang_x64" |
| - set_default_toolchain("//build/toolchain/mac:ios_clang_arm") |
| + _default_toolchain = "//build/toolchain/mac:ios_clang_arm" |
| } else if (is_nacl) { |
| # TODO(GYP): This will need to change when we get NaCl working |
| # on multiple platforms, but this whole block of code (how we define |
| @@ -547,6 +542,14 @@ if (is_win) { |
| host_toolchain = "//build/toolchain/linux:clang_x64" |
| } |
| +# If a custom toolchain has been set in the args, set it as default. Otherwise, |
| +# set the default toolchain for the platform (if any). |
| +if (custom_toolchain != "") { |
| + set_default_toolchain(custom_toolchain) |
| +} else if (_default_toolchain != "") { |
|
brettw
2015/09/28 21:25:29
I think it's OK to remove this empty string check
slan
2015/09/28 21:41:17
Done.
|
| + set_default_toolchain(_default_toolchain) |
| +} |
| + |
| # ============================================================================== |
| # COMPONENT SETUP |
| # ============================================================================== |