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

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

Issue 2123253004: Add support for multi-architecture application bundle on iOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: "regular build" -> "thin build" Created 4 years, 5 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/ios/rules.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 if (target_os == "ios") {
6 declare_args() {
7 # If defined, then the build is a multi-architecture build (aka fat build)
8 # and target_cpu must not be defined. Any value supported by target_cpu can
9 # be used in this list.
10 multi_arch_target_cpus = []
brettw 2016/07/11 23:57:17 [read the next comment first] I'm trying *really*
sdefresne 2016/07/12 09:13:33 Done.
11 }
12 }
13
5 # ============================================================================= 14 # =============================================================================
6 # PLATFORM SELECTION 15 # PLATFORM SELECTION
7 # ============================================================================= 16 # =============================================================================
8 # 17 #
9 # There are two main things to set: "os" and "cpu". The "toolchain" is the name 18 # 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. 19 # of the GN thing that encodes combinations of these things.
11 # 20 #
12 # Users typically only set the variables "target_os" and "target_cpu" in "gn 21 # Users typically only set the variables "target_os" and "target_cpu" in "gn
13 # args", the rest are set up by our build and internal to GN. 22 # args", the rest are set up by our build and internal to GN.
14 # 23 #
(...skipping 23 matching lines...) Expand all
38 target_os = host_os 47 target_os = host_os
39 } 48 }
40 49
41 if (target_cpu == "") { 50 if (target_cpu == "") {
42 if (target_os == "android") { 51 if (target_os == "android") {
43 # If we're building for Android, we should assume that we want to 52 # If we're building for Android, we should assume that we want to
44 # build for ARM by default, not the host_cpu (which is likely x64). 53 # build for ARM by default, not the host_cpu (which is likely x64).
45 # This allows us to not have to specify both target_os and target_cpu 54 # This allows us to not have to specify both target_os and target_cpu
46 # on the command line. 55 # on the command line.
47 target_cpu = "arm" 56 target_cpu = "arm"
57 } else if (target_os == "ios") {
58 # If we're building for iOS, we respect the multi_arch_target_cpus if
59 # it is defined. In that case, we pick the first architecture listed in
60 # multi_arch_target_cpus and use it as target_cpu, the others will be
61 # build as secondary toolchain by the ios_app_bundle target.
62 if (multi_arch_target_cpus != []) {
63 assert(target_cpu == "",
64 "cannot define both multi_arch_target_cpus and target_cpu")
65 target_cpu = multi_arch_target_cpus[0]
66 } else {
67 target_cpu = host_cpu
68 }
48 } else { 69 } else {
49 target_cpu = host_cpu 70 target_cpu = host_cpu
50 } 71 }
51 } 72 }
52 73
53 if (current_cpu == "") { 74 if (current_cpu == "") {
54 current_cpu = target_cpu 75 current_cpu = target_cpu
55 } 76 }
56 if (current_os == "") { 77 if (current_os == "") {
57 current_os = target_os 78 current_os = target_os
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 # See comments in build/toolchain/cros/BUILD.gn about board compiles. 228 # See comments in build/toolchain/cros/BUILD.gn about board compiles.
208 assert(host_os == "linux", 229 assert(host_os == "linux",
209 "ChromeOS builds are only supported on Linux hosts.") 230 "ChromeOS builds are only supported on Linux hosts.")
210 if (is_clang) { 231 if (is_clang) {
211 _default_toolchain = "//build/toolchain/cros:clang_target" 232 _default_toolchain = "//build/toolchain/cros:clang_target"
212 } else { 233 } else {
213 _default_toolchain = "//build/toolchain/cros:target" 234 _default_toolchain = "//build/toolchain/cros:target"
214 } 235 }
215 } else if (target_os == "ios") { 236 } else if (target_os == "ios") {
216 _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu" 237 _default_toolchain = "//build/toolchain/mac:ios_clang_$target_cpu"
238 assert(custom_toolchain == "" || multi_arch_target_cpus == [],
239 "cannot define both multi_arch_target_cpus and custom_toolchain")
240
241 # Initialize multi_arch_toolchains from multi_arch_target_cpus. The
242 # list will not contain the default_toolchain and may be empty while
243 # multi_arch_target_cpus is not. This allows the build to default to
244 # regular build if multi_arch_target_cpus contains a single cpu.
245 multi_arch_toolchains = []
brettw 2016/07/11 23:57:17 Can this code by put into build/config/ios/rules.g
sdefresne 2016/07/12 09:13:33 This will duplicate the "//build/toolchain/mac:ios
246 foreach(_multi_arch_target_cpu, multi_arch_target_cpus) {
247 if (_multi_arch_target_cpu != target_cpu) {
248 multi_arch_toolchains +=
249 [ "//build/toolchain/mac:ios_clang_$_multi_arch_target_cpu" ]
250 }
251 }
217 } else if (target_os == "linux") { 252 } else if (target_os == "linux") {
218 if (is_clang) { 253 if (is_clang) {
219 _default_toolchain = "//build/toolchain/linux:clang_$target_cpu" 254 _default_toolchain = "//build/toolchain/linux:clang_$target_cpu"
220 } else { 255 } else {
221 _default_toolchain = "//build/toolchain/linux:$target_cpu" 256 _default_toolchain = "//build/toolchain/linux:$target_cpu"
222 } 257 }
223 } else if (target_os == "mac") { 258 } else if (target_os == "mac") {
224 assert(host_os == "mac", "Mac cross-compiles are unsupported.") 259 assert(host_os == "mac", "Mac cross-compiles are unsupported.")
225 _default_toolchain = host_toolchain 260 _default_toolchain = host_toolchain
226 } else if (target_os == "win") { 261 } else if (target_os == "win") {
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 forward_variables_from(invoker, "*", [ "visibility" ]) 693 forward_variables_from(invoker, "*", [ "visibility" ])
659 694
660 # All shared libraries must have the sanitizer deps to properly link in 695 # All shared libraries must have the sanitizer deps to properly link in
661 # asan mode (this target will be empty in other cases). 696 # asan mode (this target will be empty in other cases).
662 if (!defined(deps)) { 697 if (!defined(deps)) {
663 deps = [] 698 deps = []
664 } 699 }
665 deps += [ "//build/config/sanitizers:deps" ] 700 deps += [ "//build/config/sanitizers:deps" ]
666 } 701 }
667 } 702 }
OLDNEW
« no previous file with comments | « no previous file | build/config/ios/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698