Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index 9ee2038032037cb73a6298bd295c5da1c6c2fc2d..9cdf7995d7eba45d602e277fcaefa099d63e3413 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -543,8 +543,12 @@ |
# for details. |
'chromium_win_pch%': 0, |
+ # Clang stuff. |
+ 'make_clang_dir%': 'third_party/llvm-build/Release+Asserts', |
# Set this to true when building with Clang. |
# See http://code.google.com/p/chromium/wiki/Clang for details. |
+ # If this is set, clang is used as both host and target compiler in |
+ # cross-compile builds. |
'clang%': 0, |
# Enable plug-in installation by default. |
@@ -604,6 +608,14 @@ |
'ozone_auto_platforms%': 1, |
'conditions': [ |
+ ['android_webview_build==0', { |
+ # If this is set clang is used as host compiler, but not as target |
+ # compiler. Always do this by default, except when building for AOSP. |
+ 'host_clang%': 1, |
+ }, { |
+ # See http://crbug.com/377684 |
+ 'host_clang%': 0, |
+ }], |
# A flag for POSIX platforms |
['OS=="win"', { |
'os_posix%': 0, |
@@ -1254,7 +1266,8 @@ |
# Clang stuff. |
'clang%': '<(clang)', |
- 'make_clang_dir%': 'third_party/llvm-build/Release+Asserts', |
+ 'host_clang%': '<(host_clang)', |
+ 'make_clang_dir%': '<(make_clang_dir)', |
# Control which version of clang to use when building for iOS. If set to |
# '1', uses the version of clang that ships with Xcode. If set to '0', uses |
@@ -2273,6 +2286,14 @@ |
'chromium_win_pch': 0, |
}], |
+ ['host_clang==1', { |
+ 'host_cc': '<(make_clang_dir)/bin/clang', |
+ 'host_cxx': '<(make_clang_dir)/bin/clang++', |
+ }, { |
+ 'host_cc': '<!(which gcc)', |
+ 'host_cxx': '<!(which g++)', |
+ }], |
+ |
# The seccomp-bpf sandbox is only supported on four architectures |
# currently. |
# Do not disable seccomp_bpf anywhere without talking to |
@@ -3907,6 +3928,13 @@ |
'-std=gnu++11', |
], |
}], |
+ ['clang==0 and host_clang==1', { |
+ 'target_conditions': [ |
+ ['_toolset=="host"', { |
+ 'cflags_cc': [ '-std=gnu++11', ], |
+ }], |
+ ], |
+ }], |
['clang==1 and clang_use_chrome_plugins==1', { |
'cflags': [ |
'<@(clang_chrome_plugins_flags)', |
@@ -4254,7 +4282,7 @@ |
}], |
], |
}], |
- ['host_gcc_version>=47 and clang==0', { |
+ ['host_gcc_version>=47 and clang==0 and host_clang==0', { |
'target_conditions': [ |
['_toolset=="host"', { |
'cflags_cc': [ |
@@ -5518,6 +5546,13 @@ |
], |
}, |
}], |
+ ['gcc_version>=48 and clang==0 and host_clang==1', { |
+ 'target_defaults': { |
+ 'target_conditions': [ |
+ ['_toolset=="host"', { 'cflags!': [ '-Wno-unused-local-typedefs' ]}], |
+ ], |
+ }, |
+ }], |
# We need a special case to handle the android webview build on mac because |
# the host gcc there doesn't accept this flag, but the target gcc may |
# require it. |
@@ -5553,16 +5588,16 @@ |
'make_global_settings': [ |
['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'], |
['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'], |
- ['CC.host', '<!(which gcc)'], |
- ['CXX.host', '<!(which g++)'], |
+ ['CC.host', '<(host_cc)'], |
+ ['CXX.host', '<(host_cxx)'], |
], |
}], |
['OS=="linux" and target_arch=="mipsel"', { |
'make_global_settings': [ |
['CC', '<(sysroot)/../bin/mipsel-linux-gnu-gcc'], |
['CXX', '<(sysroot)/../bin/mipsel-linux-gnu-g++'], |
- ['CC.host', '<!(which gcc)'], |
- ['CXX.host', '<!(which g++)'], |
+ ['CC.host', '<(host_cc)'], |
+ ['CXX.host', '<(host_cxx)'], |
], |
}], |
['OS=="linux" and target_arch=="arm" and host_arch!="arm" and chromeos==0 and clang==0', { |
@@ -5571,8 +5606,8 @@ |
'make_global_settings': [ |
['CC', '<!(which arm-linux-gnueabihf-gcc)'], |
['CXX', '<!(which arm-linux-gnueabihf-g++)'], |
- ['CC.host', '<!(which gcc)'], |
- ['CXX.host', '<!(which g++)'], |
+ ['CC.host', '<(host_cc)'], |
+ ['CXX.host', '<(host_cxx)'], |
], |
}], |