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

Unified Diff: pylib/gyp/generator/ninja.py

Issue 12300015: Support command wrapper in make_global_settings (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 10 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: pylib/gyp/generator/ninja.py
===================================================================
--- pylib/gyp/generator/ninja.py (revision 1462)
+++ pylib/gyp/generator/ninja.py (working copy)
@@ -1267,6 +1267,13 @@
return open(path, mode)
+def CommandWithWrapper(cmd, wrappers, prog):
+ wrapper = wrappers.get(cmd, '')
+ if wrapper:
+ return wrapper + ' ' + prog
+ return prog
+
+
def GenerateOutputForConfig(target_list, target_dicts, data, params,
config_name):
options = params['options']
@@ -1297,15 +1304,24 @@
build_file, _, _ = gyp.common.ParseQualifiedTarget(target_list[0])
make_global_settings = data[build_file].get('make_global_settings', [])
build_to_root = InvertRelativePath(build_dir)
+ flock = 'flock'
+ if flavor == 'mac':
+ flock = './gyp-mac-tool flock'
+ wrappers = {}
+ if flavor != 'win':
+ wrappers['link'] = flock + ' linker.lock'
+ wrappers['link_target'] = flock + ' linker.lock'
for key, value in make_global_settings:
if key == 'CC': cc = os.path.join(build_to_root, value)
if key == 'CXX': cxx = os.path.join(build_to_root, value)
+ m = re.match('(.*)_wrapper', key)
Nico 2013/02/19 17:21:30 same comment as in the make generator
ukai 2013/02/20 07:22:53 Done.
+ if m:
+ wrappers[m.group(1).lower()] = os.path.join(build_to_root, value)
Nico 2013/02/19 17:21:30 You don't use lower() in the make generator. Shoul
ukai 2013/02/20 07:22:53 Done.
- flock = 'flock'
- if flavor == 'mac':
- flock = './gyp-mac-tool flock'
- master_ninja.variable('cc', os.environ.get('CC', cc))
- master_ninja.variable('cxx', os.environ.get('CXX', cxx))
+ master_ninja.variable('cc', CommandWithWrapper('cc', wrappers,
+ os.environ.get('CC', cc)))
+ master_ninja.variable('cxx', CommandWithWrapper('cxx', wrappers,
+ os.environ.get('CXX', cxx)))
if flavor == 'win':
master_ninja.variable('ld', 'link.exe')
master_ninja.variable('idl', 'midl.exe')
@@ -1315,7 +1331,7 @@
master_ninja.variable('mt', 'mt.exe')
master_ninja.variable('use_dep_database', '1')
else:
- master_ninja.variable('ld', flock + ' linker.lock $cxx')
+ master_ninja.variable('ld', CommandWithWrapper('link', wrappers, '$cxx'))
master_ninja.variable('ar', os.environ.get('AR', 'ar'))
master_ninja.variable('ar_target', os.environ.get('AR_target', '$ar'))
@@ -1324,7 +1340,9 @@
if flavor == 'win':
master_ninja.variable('ld_target', os.environ.get('LD_target', '$ld'))
else:
- master_ninja.variable('ld_target', flock + ' linker.lock $cxx_target')
+ master_ninja.variable('ld_target',
+ CommandWithWrapper('link_target', wrappers,
+ '$cxx_target'))
if flavor == 'mac':
master_ninja.variable('mac_tool', os.path.join('.', 'gyp-mac-tool'))

Powered by Google App Engine
This is Rietveld 408576698