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

Side by Side Diff: build/toolchain/mac/BUILD.gn

Issue 2079283002: [iOS/GN] Allow compilation with system clang. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Pass -isystem when building with system clang on iOS Created 4 years, 6 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
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 # 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/ios/ios_sdk.gni") 10 import("//build/config/ios/ios_sdk.gni")
(...skipping 14 matching lines...) Expand all
25 25
26 if (current_toolchain == default_toolchain) { 26 if (current_toolchain == default_toolchain) {
27 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets 27 # Reduce the number of tasks using the copy_bundle_data and compile_xcassets
28 # tools as they can cause lots of I/O contention when invoking ninja with a 28 # tools as they can cause lots of I/O contention when invoking ninja with a
29 # large number of parallel jobs (e.g. when using distributed build like goma). 29 # large number of parallel jobs (e.g. when using distributed build like goma).
30 pool("bundle_pool") { 30 pool("bundle_pool") {
31 depth = concurrent_links 31 depth = concurrent_links
32 } 32 }
33 } 33 }
34 34
35 if (use_system_clang) {
36 _clang_prefix = ""
37 } else {
38 _clang_prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin/",
39 root_build_dir)
40 }
41
35 # This will copy the gyp-mac-tool to the build directory. We pass in the source 42 # This will copy the gyp-mac-tool to the build directory. We pass in the source
36 # file of the mac tool. 43 # file of the mac tool.
37 gyp_mac_tool_source = 44 gyp_mac_tool_source =
38 rebase_path("//tools/gyp/pylib/gyp/mac_tool.py", root_build_dir) 45 rebase_path("//tools/gyp/pylib/gyp/mac_tool.py", root_build_dir)
39 exec_script("setup_toolchain.py", [ gyp_mac_tool_source ]) 46 exec_script("setup_toolchain.py", [ gyp_mac_tool_source ])
40 47
41 # When implementing tools using Python scripts, a TOOL_VERSION=N env 48 # When implementing tools using Python scripts, a TOOL_VERSION=N env
42 # variable is placed in front of the command. The N should be incremented 49 # variable is placed in front of the command. The N should be incremented
43 # whenever the script is changed, so that the build system rebuilds all 50 # whenever the script is changed, so that the build system rebuilds all
44 # edges that utilize the script. Ideally this should be changed to use 51 # edges that utilize the script. Ideally this should be changed to use
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 if (defined(invoker.is_clang)) { 350 if (defined(invoker.is_clang)) {
344 is_clang = invoker.is_clang 351 is_clang = invoker.is_clang
345 } 352 }
346 } 353 }
347 } 354 }
348 } 355 }
349 356
350 mac_toolchain("clang_arm") { 357 mac_toolchain("clang_arm") {
351 toolchain_cpu = "arm" 358 toolchain_cpu = "arm"
352 toolchain_os = "mac" 359 toolchain_os = "mac"
353 prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin", 360 cc = "${goma_prefix}${_clang_prefix}clang"
354 root_build_dir) 361 cxx = "${goma_prefix}${_clang_prefix}clang++"
355 cc = "${goma_prefix}$prefix/clang"
356 cxx = "${goma_prefix}$prefix/clang++"
357 ld = cxx 362 ld = cxx
358 is_clang = true 363 is_clang = true
359 } 364 }
360 365
366 mac_toolchain("arm") {
367 toolchain_cpu = "arm"
368 toolchain_os = "mac"
369 cc = "${goma_prefix}gcc"
370 cxx = "${goma_prefix}g++"
371 ld = cxx
372 is_clang = false
373 }
374
375 mac_toolchain("clang_x64") {
376 toolchain_cpu = "x64"
377 toolchain_os = "mac"
378 cc = "${goma_prefix}${_clang_prefix}clang"
379 cxx = "${goma_prefix}${_clang_prefix}clang++"
380 ld = cxx
381 is_clang = true
382 }
383
384 mac_toolchain("x64") {
385 toolchain_cpu = "x64"
386 toolchain_os = "mac"
387 cc = "${goma_prefix}gcc"
388 cxx = "${goma_prefix}g++"
389 ld = cxx
390 is_clang = false
391 }
Dirk Pranke 2016/06/20 16:31:22 Where do we use gcc toolchains on the mac? Why add
sdefresne 2016/06/21 11:31:29 I didn't add them, I moved the ios ones below this
392
361 mac_toolchain("ios_clang_arm") { 393 mac_toolchain("ios_clang_arm") {
362 toolchain_cpu = "arm" 394 toolchain_cpu = "arm"
363 toolchain_os = "mac" 395 toolchain_os = "mac"
364 396 cc = "${goma_prefix}${_clang_prefix}clang"
365 # TODO(GYP): We need to support being able to use the version of clang 397 cxx = "${goma_prefix}${_clang_prefix}clang++"
366 # shipped w/ XCode instead of the one pulled from upstream.
367 prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
368 root_build_dir)
369 cc = "${goma_prefix}$prefix/clang"
370 cxx = "${goma_prefix}$prefix/clang++"
371 ld = cxx
372 is_clang = true
373 }
374
375 mac_toolchain("ios_clang_armv7") {
376 toolchain_cpu = "armv7"
377 toolchain_os = "mac"
378
379 # TODO(GYP): We need to support being able to use the version of clang
380 # shipped w/ XCode instead of the one pulled from upstream.
381 prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
382 root_build_dir)
383 cc = "${goma_prefix}$prefix/clang"
384 cxx = "${goma_prefix}$prefix/clang++"
385 ld = cxx 398 ld = cxx
386 is_clang = true 399 is_clang = true
387 } 400 }
388 401
389 mac_toolchain("ios_clang_arm64") { 402 mac_toolchain("ios_clang_arm64") {
390 toolchain_cpu = "arm64" 403 toolchain_cpu = "arm64"
391 toolchain_os = "mac" 404 toolchain_os = "mac"
392 405 cc = "${goma_prefix}${_clang_prefix}clang"
393 # TODO(GYP): We need to support being able to use the version of clang 406 cxx = "${goma_prefix}${_clang_prefix}clang++"
394 # shipped w/ XCode instead of the one pulled from upstream.
395 prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
396 root_build_dir)
397 cc = "${goma_prefix}$prefix/clang"
398 cxx = "${goma_prefix}$prefix/clang++"
399 ld = cxx 407 ld = cxx
400 is_clang = true 408 is_clang = true
401 } 409 }
402 410
403 mac_toolchain("arm") { 411 mac_toolchain("ios_clang_x86") {
404 toolchain_cpu = "arm" 412 toolchain_cpu = "x86"
405 toolchain_os = "mac" 413 toolchain_os = "mac"
406 cc = "${goma_prefix}/gcc" 414 cc = "${goma_prefix}${_clang_prefix}clang"
407 cxx = "${goma_prefix}/g++" 415 cxx = "${goma_prefix}${_clang_prefix}clang++"
408 ld = cxx
409 is_clang = false
410 }
411
412 mac_toolchain("clang_x64") {
413 toolchain_cpu = "x64"
414 toolchain_os = "mac"
415 prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
416 root_build_dir)
417 cc = "${goma_prefix}$prefix/clang"
418 cxx = "${goma_prefix}$prefix/clang++"
419 ld = cxx 416 ld = cxx
420 is_clang = true 417 is_clang = true
421 } 418 }
422 419
423 mac_toolchain("x64") { 420 mac_toolchain("ios_clang_x64") {
424 toolchain_cpu = "x64" 421 toolchain_cpu = "x64"
425 toolchain_os = "mac" 422 toolchain_os = "mac"
426 cc = "${goma_prefix}/gcc" 423 cc = "${goma_prefix}${_clang_prefix}clang"
427 cxx = "${goma_prefix}/g++" 424 cxx = "${goma_prefix}${_clang_prefix}clang++"
428 ld = cxx 425 ld = cxx
429 is_clang = false 426 is_clang = true
430 } 427 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698