Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1859)

Side by Side Diff: build/config/BUILDCONFIG.gn

Issue 1373593003: Allow a custom toolchain to be injected into BUILDCONFIG.gn (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: Fix comment typo. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | build/config/gcc/gcc_version.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 # ============================================================================= 5 # =============================================================================
6 # PLATFORM SELECTION 6 # PLATFORM SELECTION
7 # ============================================================================= 7 # =============================================================================
8 # 8 #
9 # There are two main things to set: "os" and "cpu". The "toolchain" is the name 9 # There are two main things to set: "os" and "cpu". The "toolchain" is the name
10 # of the GN thing that encodes combinations of these things. 10 # of the GN thing that encodes combinations of these things.
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 is_clang = current_os == "mac" || current_os == "ios" || 125 is_clang = current_os == "mac" || current_os == "ios" ||
126 current_os == "linux" || current_os == "chromeos" 126 current_os == "linux" || current_os == "chromeos"
127 127
128 if (current_os == "chromeos") { 128 if (current_os == "chromeos") {
129 # Allows the target toolchain to be injected as arguments. This is needed 129 # Allows the target toolchain to be injected as arguments. This is needed
130 # to support the CrOS build system which supports per-build-configuration 130 # to support the CrOS build system which supports per-build-configuration
131 # toolchains. 131 # toolchains.
132 cros_use_custom_toolchain = false 132 cros_use_custom_toolchain = false
133 } 133 }
134 134
135 # Allows the path to a custom target toolchain to be injected as a single
136 # argument, and set as the default toolchain.
137 # Note: On ChromeOS, do not set this argument. Instead, set
138 # cros_use_custom_toolchain, and set each of the args required by
139 # //build/toolchain/cros:target.
140 custom_toolchain = ""
brettw 2015/09/28 19:58:28 We need to keep this file cleaner than this. Pleas
slan 2015/09/28 20:50:40 There are two paths around this redundancy: 1) Al
slan 2015/09/28 21:21:42 Removed.
141
135 # DON'T ADD MORE FLAGS HERE. Read the comment above. 142 # DON'T ADD MORE FLAGS HERE. Read the comment above.
136 } 143 }
137 144
145 if (current_os == "chromeos") {
146 assert(
147 custom_toolchain == "",
148 "|custom_toolchain| should not be set in args on ChromeOS. Set cros_use_cu stom_toolchain instead.")
149
150 if (cros_use_custom_toolchain) {
151 custom_toolchain = "//build/toolchain/cros:target"
152 }
153 }
154
138 # ============================================================================= 155 # =============================================================================
139 # OS DEFINITIONS 156 # OS DEFINITIONS
140 # ============================================================================= 157 # =============================================================================
141 # 158 #
142 # We set these various is_FOO booleans for convenience in writing OS-based 159 # We set these various is_FOO booleans for convenience in writing OS-based
143 # conditions. 160 # conditions.
144 # 161 #
145 # - is_android, is_chromeos, is_ios, and is_win should be obvious. 162 # - is_android, is_chromeos, is_ios, and is_win should be obvious.
146 # - is_mac is set only for desktop Mac. It is not set on iOS. 163 # - is_mac is set only for desktop Mac. It is not set on iOS.
147 # - is_posix is true for mac and any Unix-like system (basically everything 164 # - is_posix is true for mac and any Unix-like system (basically everything
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 set_default_toolchain("//build/toolchain/android:$current_cpu") 540 set_default_toolchain("//build/toolchain/android:$current_cpu")
524 } 541 }
525 } else if (is_linux) { 542 } else if (is_linux) {
526 if (is_clang) { 543 if (is_clang) {
527 host_toolchain = "//build/toolchain/linux:clang_$host_cpu" 544 host_toolchain = "//build/toolchain/linux:clang_$host_cpu"
528 set_default_toolchain("//build/toolchain/linux:clang_$current_cpu") 545 set_default_toolchain("//build/toolchain/linux:clang_$current_cpu")
529 } else { 546 } else {
530 host_toolchain = "//build/toolchain/linux:$host_cpu" 547 host_toolchain = "//build/toolchain/linux:$host_cpu"
531 set_default_toolchain("//build/toolchain/linux:$current_cpu") 548 set_default_toolchain("//build/toolchain/linux:$current_cpu")
532 } 549 }
533 if (is_chromeos && cros_use_custom_toolchain) {
534 set_default_toolchain("//build/toolchain/cros:target")
535 }
536 } else if (is_mac) { 550 } else if (is_mac) {
537 host_toolchain = "//build/toolchain/mac:clang_x64" 551 host_toolchain = "//build/toolchain/mac:clang_x64"
538 set_default_toolchain(host_toolchain) 552 set_default_toolchain(host_toolchain)
539 } else if (is_ios) { 553 } else if (is_ios) {
540 host_toolchain = "//build/toolchain/mac:clang_x64" 554 host_toolchain = "//build/toolchain/mac:clang_x64"
541 set_default_toolchain("//build/toolchain/mac:ios_clang_arm") 555 set_default_toolchain("//build/toolchain/mac:ios_clang_arm")
542 } else if (is_nacl) { 556 } else if (is_nacl) {
543 # TODO(GYP): This will need to change when we get NaCl working 557 # TODO(GYP): This will need to change when we get NaCl working
544 # on multiple platforms, but this whole block of code (how we define 558 # on multiple platforms, but this whole block of code (how we define
545 # host_toolchain) needs to be reworked regardless to key off of host_os 559 # host_toolchain) needs to be reworked regardless to key off of host_os
546 # and host_cpu rather than the is_* variables. 560 # and host_cpu rather than the is_* variables.
547 host_toolchain = "//build/toolchain/linux:clang_x64" 561 host_toolchain = "//build/toolchain/linux:clang_x64"
548 } 562 }
549 563
564 # Set the custom default toolchain.
565 if (custom_toolchain != "") {
566 set_default_toolchain(custom_toolchain)
brettw 2015/09/28 19:58:28 let's restructure the code above to assign to a va
slan 2015/09/28 20:50:40 Done.
567 }
568
550 # ============================================================================== 569 # ==============================================================================
551 # COMPONENT SETUP 570 # COMPONENT SETUP
552 # ============================================================================== 571 # ==============================================================================
553 572
554 if (is_component_build) { 573 if (is_component_build) {
555 _component_mode = "shared_library" 574 _component_mode = "shared_library"
556 } else { 575 } else {
557 _component_mode = "source_set" 576 _component_mode = "source_set"
558 } 577 }
559 template("component") { 578 template("component") {
560 target(_component_mode, target_name) { 579 target(_component_mode, target_name) {
561 forward_variables_from(invoker, "*") 580 forward_variables_from(invoker, "*")
562 581
563 # All shared libraries must have the sanitizer deps to properly link in 582 # All shared libraries must have the sanitizer deps to properly link in
564 # asan mode (this target will be empty in other cases). 583 # asan mode (this target will be empty in other cases).
565 if (!defined(deps)) { 584 if (!defined(deps)) {
566 deps = [] 585 deps = []
567 } 586 }
568 deps += [ "//build/config/sanitizers:deps" ] 587 deps += [ "//build/config/sanitizers:deps" ]
569 } 588 }
570 } 589 }
OLDNEW
« no previous file with comments | « no previous file | build/config/gcc/gcc_version.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698