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

Unified Diff: build/toolchain/mac/BUILD.gn

Issue 1250913002: patch from chinmaygarde@ to make progress on mac, ios. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tweaks needed to get base_unittests to compile Created 5 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 side-by-side diff with in-line comments
Download patch
Index: build/toolchain/mac/BUILD.gn
diff --git a/build/toolchain/mac/BUILD.gn b/build/toolchain/mac/BUILD.gn
index 237f6416cbf5ab7198259ec02ddb1c5ca28713cc..2c8f9c8b62a53e45ee0b9ad0d2a1f52e8509e5f2 100644
--- a/build/toolchain/mac/BUILD.gn
+++ b/build/toolchain/mac/BUILD.gn
@@ -7,11 +7,13 @@
# Linux.
import("../goma.gni")
+import("//build/config/ios/ios_sdk.gni")
assert(host_os == "mac")
import("//build/toolchain/clang.gni")
import("//build/toolchain/goma.gni")
+import("//build/config/sysroot.gni")
if (use_goma) {
goma_prefix = "$goma_dir/gomacc "
@@ -36,6 +38,8 @@ template("mac_toolchain") {
"mac_toolchain() must specify a \"toolchain_cpu\"")
assert(defined(invoker.toolchain_os),
"mac_toolchain() must specify a \"toolchain_os\"")
+ assert(defined(invoker.switch_sysroot),
+ "mac_toolchain() must specify a \"switch_sysroot\"")
# We can't do string interpolation ($ in strings) on things with dots in
# them. To allow us to use $cc below, for example, we create copies of
@@ -48,9 +52,23 @@ template("mac_toolchain") {
lib_switch = "-l"
lib_dir_switch = "-L"
+ sysroot_flags = ""
+
+ if (invoker.switch_sysroot) {
+ version_flags = ""
+
+ if (use_ios_simulator) {
+ version_flags = "-mios-simulator-version-min=$ios_deployment_target"
+ } else {
+ version_flags = "-miphoneos-version-min=$ios_deployment_target"
+ }
+
+ sysroot_flags = "-isysroot $sysroot $version_flags"
+ }
+
tool("cc") {
depfile = "{{output}}.d"
- command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
+ command = "$cc -MMD -MF $depfile {{defines}} {{include_dirs}} $sysroot_flags {{cflags}} {{cflags_c}} -c {{source}} -o {{output}}"
depsformat = "gcc"
description = "CC {{output}}"
outputs = [
@@ -60,7 +78,7 @@ template("mac_toolchain") {
tool("cxx") {
depfile = "{{output}}.d"
- command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
+ command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} $sysroot_flags {{cflags}} {{cflags_cc}} -c {{source}} -o {{output}}"
depsformat = "gcc"
description = "CXX {{output}}"
outputs = [
@@ -81,7 +99,7 @@ template("mac_toolchain") {
tool("objc") {
depfile = "{{output}}.d"
- command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_objc}} -c {{source}} -o {{output}}"
+ command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} {{cflags_objc}} -c {{source}} -o {{output}}"
depsformat = "gcc"
description = "OBJC {{output}}"
outputs = [
@@ -91,7 +109,7 @@ template("mac_toolchain") {
tool("objcxx") {
depfile = "{{output}}.d"
- command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_objcc}} -c {{source}} -o {{output}}"
+ command = "$cxx -MMD -MF $depfile {{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} {{cflags_objcc}} -c {{source}} -o {{output}}"
depsformat = "gcc"
description = "OBJCXX {{output}}"
outputs = [
@@ -125,7 +143,7 @@ template("mac_toolchain") {
temporary_tocname = dylib + ".tmp"
does_reexport_command = "[ ! -e $dylib -o ! -e $tocname ] || otool -l $dylib | grep -q LC_REEXPORT_DYLIB"
- link_command = "$ld -shared {{ldflags}} -o $dylib -Wl,-filelist,$rspfile {{solibs}} {{libs}}"
+ link_command = "$ld -shared $sysroot_flags {{ldflags}} -o $dylib -Wl,-filelist,$rspfile {{solibs}} {{libs}}"
replace_command = "if ! cmp -s $temporary_tocname $tocname; then mv $temporary_tocname $tocname"
extract_toc_command = "{ otool -l $dylib | grep LC_ID_DYLIB -A 5; nm -gP $dylib | cut -f1-2 -d' ' | grep -v U\$\$; true; }"
@@ -160,7 +178,7 @@ template("mac_toolchain") {
tool("link") {
outfile = "{{root_out_dir}}/{{target_output_name}}{{output_extension}}"
rspfile = "$outfile.rsp"
- command = "$ld {{ldflags}} -o $outfile -Wl,-filelist,$rspfile {{solibs}} {{libs}}"
+ command = "$ld $sysroot_flags {{ldflags}} -o $outfile -Wl,-filelist,$rspfile {{solibs}} {{libs}}"
description = "LINK $outfile"
rspfile_content = "{{inputs_newline}}"
outputs = [
@@ -202,6 +220,19 @@ mac_toolchain("clang_arm") {
cxx = "${goma_prefix}$prefix/clang++"
ld = cxx
is_clang = true
+ switch_sysroot = false
+}
+
+mac_toolchain("ios_clang_arm") {
sdefresne 2015/07/25 19:15:30 do we need "ios_clang_armv7" and "ios_clang_arm64"
+ toolchain_cpu = "arm"
+ toolchain_os = "mac"
+ prefix = rebase_path("//third_party/llvm-build/Release+Asserts/bin",
sdefresne 2015/07/25 19:15:30 Question: with gyp, at multiple occasion, on iOS w
Dirk Pranke 2015/07/31 21:27:41 We can definitely add it. I'll add a TODO here.
+ root_build_dir)
+ cc = "${goma_prefix}$prefix/clang"
+ cxx = "${goma_prefix}$prefix/clang++"
+ ld = cxx
+ is_clang = true
+ switch_sysroot = true
}
mac_toolchain("arm") {
@@ -211,6 +242,7 @@ mac_toolchain("arm") {
cxx = "${goma_prefix}/g++"
ld = cxx
is_clang = false
+ switch_sysroot = false
}
mac_toolchain("clang_x64") {
@@ -222,6 +254,7 @@ mac_toolchain("clang_x64") {
cxx = "${goma_prefix}$prefix/clang++"
ld = cxx
is_clang = true
+ switch_sysroot = false
}
mac_toolchain("x64") {
@@ -231,4 +264,5 @@ mac_toolchain("x64") {
cxx = "${goma_prefix}/g++"
ld = cxx
is_clang = false
+ switch_sysroot = false
}

Powered by Google App Engine
This is Rietveld 408576698