diff options
author | yukawa@chromium.org <yukawa@chromium.org@78cadc50-ecff-11dd-a971-7dbc132099af> | 2014-06-12 17:35:33 +0000 |
---|---|---|
committer | yukawa@chromium.org <yukawa@chromium.org@78cadc50-ecff-11dd-a971-7dbc132099af> | 2014-06-12 17:35:33 +0000 |
commit | f9242383d34ee991cd73d3ca2c26e5fcc17091e7 (patch) | |
tree | bfc53a83e45791423864aeb1b2bcf40c4b9b4525 | |
parent | f6d25e9ca24aa0aab73ff2679d05b17116782816 (diff) | |
download | gyp-f9242383d34ee991cd73d3ca2c26e5fcc17091e7.tar.gz |
Teach Ninja generator about 'AR' in 'make_global_settings'
With this CL, 'AR' in 'make_global_settings' can be recognized by Ninja generator, like Make generator. This makes it easier for you to share the code among host/NaCl/NDK/Emscripten build targets.
Note that 'AR.host' is not yet supported with this CL.
BUG=gyp:434
TEST=unittest
R=scottmg@chromium.org, torne@chromium.org
Review URL: https://codereview.chromium.org/321843002
git-svn-id: http://gyp.googlecode.com/svn/trunk@1935 78cadc50-ecff-11dd-a971-7dbc132099af
-rw-r--r-- | pylib/gyp/generator/ninja.py | 8 | ||||
-rw-r--r-- | test/make_global_settings/ar/gyptest-make_global_settings_ar.py | 12 |
2 files changed, 10 insertions, 10 deletions
diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py index dd811e30..43e5ebd4 100644 --- a/pylib/gyp/generator/ninja.py +++ b/pylib/gyp/generator/ninja.py @@ -1717,6 +1717,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, # 'CC_host'/'CXX_host' enviroment variable, cc_host/cxx_host should be set # to cc/cxx. if flavor == 'win': + ar = 'lib.exe' # cc and cxx must be set to the correct architecture by overriding with one # of cl_x86 or cl_x64 below. cc = 'UNSET' @@ -1724,6 +1725,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, ld = 'link.exe' ld_host = '$ld' else: + ar = 'ar' cc = 'cc' cxx = 'c++' ld = '$cc' @@ -1743,6 +1745,8 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, options.toplevel_dir) wrappers = {} for key, value in make_global_settings: + if key == 'AR': + ar = os.path.join(build_to_root, value) if key == 'CC': cc = os.path.join(build_to_root, value) if cc.endswith('clang-cl'): @@ -1787,14 +1791,14 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params, if flavor == 'win': master_ninja.variable('ld', ld) master_ninja.variable('idl', 'midl.exe') - master_ninja.variable('ar', 'lib.exe') + master_ninja.variable('ar', ar) master_ninja.variable('rc', 'rc.exe') master_ninja.variable('asm', 'ml.exe') master_ninja.variable('mt', 'mt.exe') else: master_ninja.variable('ld', CommandWithWrapper('LINK', wrappers, ld)) master_ninja.variable('ldxx', CommandWithWrapper('LINK', wrappers, ldxx)) - master_ninja.variable('ar', GetEnvironFallback(['AR_target', 'AR'], 'ar')) + master_ninja.variable('ar', GetEnvironFallback(['AR_target', 'AR'], ar)) if generator_supports_multiple_toolsets: if not cc_host: diff --git a/test/make_global_settings/ar/gyptest-make_global_settings_ar.py b/test/make_global_settings/ar/gyptest-make_global_settings_ar.py index a62bb2d1..a90baad9 100644 --- a/test/make_global_settings/ar/gyptest-make_global_settings_ar.py +++ b/test/make_global_settings/ar/gyptest-make_global_settings_ar.py @@ -85,18 +85,16 @@ verify_ar_target(test) # Test 'AR' in 'make_global_settings'. test.run_gyp('make_global_settings_ar.gyp', '-Dcustom_ar_target=my_ar') -# TODO(yukawa): Support 'AR' in Ninja generator -if test.format == 'make': - verify_ar_target(test, ar='my_ar', rel_path=True) +verify_ar_target(test, ar='my_ar', rel_path=True) # Test 'AR'/'AR.host' in 'make_global_settings'. test.run_gyp('make_global_settings_ar.gyp', '-Dcustom_ar_target=my_ar_target1', '-Dcustom_ar_host=my_ar_host1') -# TODO(yukawa): Support 'AR'/'AR.host' in Ninja generator +verify_ar_target(test, ar='my_ar_target1', rel_path=True) +# TODO(yukawa): Support 'AR.host' in Ninja generator if test.format == 'make': - verify_ar_target(test, ar='my_ar_target1', rel_path=True) verify_ar_host(test, ar='my_ar_host1', rel_path=True) @@ -118,9 +116,7 @@ verify_ar_host(test, ar='my_ar_host2', rel_path=False) with TestGyp.LocalEnv({'AR_host': 'my_ar_host3'}): test.run_gyp('make_global_settings_ar.gyp', '-Dcustom_ar_target=my_ar_target3') -# TODO(yukawa): Support 'AR' in Ninja generator -if test.format == 'make': - verify_ar_target(test, ar='my_ar_target3', rel_path=True) +verify_ar_target(test, ar='my_ar_target3', rel_path=True) verify_ar_host(test, ar='my_ar_host3', rel_path=False) |