Add support for GYP_GENERATOR_FLAGS out dir setting for landmines
BUG=421894
Review URL: https://codereview.chromium.org/695753002
Cr-Commit-Position: refs/heads/master@{#302419}
CrOS-Libchrome-Original-Commit: 6bad0d4fad0ee39e993d90eb2ab8050d650efa2b
diff --git a/build/landmine_utils.py b/build/landmine_utils.py
index 7737832..9b667d0 100644
--- a/build/landmine_utils.py
+++ b/build/landmine_utils.py
@@ -48,6 +48,12 @@
for arg in shlex.split(os.environ.get('GYP_DEFINES', '')))
@memoize()
+def gyp_generator_flags():
+ """Parses and returns GYP_GENERATOR_FLAGS env var as a dictionary."""
+ return dict(arg.split('=', 1)
+ for arg in shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', '')))
+
+@memoize()
def gyp_msvs_version():
return os.environ.get('GYP_MSVS_VERSION', '')
diff --git a/build/landmines.py b/build/landmines.py
index a034864..e1ce6f3 100755
--- a/build/landmines.py
+++ b/build/landmines.py
@@ -44,7 +44,12 @@
if build_tool == 'xcode':
ret = os.path.join(SRC_DIR, 'xcodebuild')
elif build_tool in ['make', 'ninja', 'ninja-ios']: # TODO: Remove ninja-ios.
- ret = os.path.join(SRC_DIR, os.environ.get('CHROMIUM_OUT_DIR', 'out'))
+ if ('CHROMIUM_OUT_DIR' not in os.environ and
+ 'output_dir' in landmine_utils.gyp_generator_flags()):
+ output_dir = landmine_utils.gyp_generator_flags()['output_dir']
+ else:
+ output_dir = os.environ.get('CHROMIUM_OUT_DIR', 'out')
+ ret = os.path.join(SRC_DIR, output_dir)
else:
raise NotImplementedError('Unexpected GYP_GENERATORS (%s)' % build_tool)
return os.path.abspath(ret)