Index: build/gyp_chromium |
diff --git a/build/gyp_chromium b/build/gyp_chromium |
index 6c407f41ca01a1ffc4f5d18266246086112b94e4..00cbf2778dfbd51f831a3921ecc40efb3cf97480 100755 |
--- a/build/gyp_chromium |
+++ b/build/gyp_chromium |
@@ -8,7 +8,7 @@ |
# is invoked by Chromium beyond what can be done in the gclient hooks. |
import glob |
-import gyp_environment |
+import gyp_helper |
import os |
import re |
import shlex |
@@ -199,6 +199,10 @@ |
args.append('-Ganalyzer_output_path=' + args.pop(0)) |
if int(os.environ.get('GYP_CHROMIUM_NO_ACTION', 0)): |
+ # Check for landmines (reasons to clobber the build) in any case. |
+ print 'Running build/landmines.py...' |
+ subprocess.check_call( |
+ [sys.executable, os.path.join(script_dir, 'landmines.py')]) |
print 'Skipping gyp_chromium due to GYP_CHROMIUM_NO_ACTION env var.' |
sys.exit(0) |
@@ -223,6 +227,8 @@ |
p.communicate() |
sys.exit(p.returncode) |
+ gyp_helper.apply_chromium_gyp_env() |
+ |
# This could give false positives since it doesn't actually do real option |
# parsing. Oh well. |
gyp_file_specified = False |
@@ -241,8 +247,6 @@ |
args.extend(shlex.split(gyp_file)) |
else: |
args.append(os.path.join(script_dir, 'all.gyp')) |
- |
- gyp_environment.SetEnvironment() |
# There shouldn't be a circular dependency relationship between .gyp files, |
# but in Chromium's .gyp files, on non-Mac platforms, circular relationships |
@@ -262,6 +266,21 @@ |
print 'Error: make gyp generator not supported (check GYP_GENERATORS).' |
sys.exit(1) |
+ # Default to ninja on linux and windows, but only if no generator has |
+ # explicitly been set. |
+ # Also default to ninja on mac, but only when not building chrome/ios. |
+ # . -f / --format has precedence over the env var, no need to check for it |
+ # . set the env var only if it hasn't been set yet |
+ # . chromium.gyp_env has been applied to os.environ at this point already |
+ if sys.platform.startswith(('linux', 'win', 'freebsd')) and \ |
+ not os.environ.get('GYP_GENERATORS'): |
+ os.environ['GYP_GENERATORS'] = 'ninja' |
+ elif sys.platform == 'darwin' and not os.environ.get('GYP_GENERATORS') and \ |
+ not 'OS=ios' in os.environ.get('GYP_DEFINES', []): |
+ os.environ['GYP_GENERATORS'] = 'ninja' |
+ |
+ vs2013_runtime_dll_dirs = vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() |
+ |
# If CHROMIUM_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check |
# to enfore syntax checking. |
syntax_check = os.environ.get('CHROMIUM_GYP_SYNTAX_CHECK') |
@@ -305,7 +324,13 @@ |
gyp_rc = gyp.main(args) |
if not use_analyzer: |
- vs2013_runtime_dll_dirs = vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs() |
+ # Check for landmines (reasons to clobber the build). This must be run here, |
+ # rather than a separate runhooks step so that any environment modifications |
+ # from above are picked up. |
+ print 'Running build/landmines.py...' |
+ subprocess.check_call( |
+ [sys.executable, os.path.join(script_dir, 'landmines.py')]) |
+ |
if vs2013_runtime_dll_dirs: |
x64_runtime, x86_runtime = vs2013_runtime_dll_dirs |
vs_toolchain.CopyVsRuntimeDlls( |