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')) |