summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryukawa@chromium.org <yukawa@chromium.org@78cadc50-ecff-11dd-a971-7dbc132099af>2014-06-12 17:35:33 +0000
committeryukawa@chromium.org <yukawa@chromium.org@78cadc50-ecff-11dd-a971-7dbc132099af>2014-06-12 17:35:33 +0000
commitf9242383d34ee991cd73d3ca2c26e5fcc17091e7 (patch)
treebfc53a83e45791423864aeb1b2bcf40c4b9b4525
parentf6d25e9ca24aa0aab73ff2679d05b17116782816 (diff)
downloadgyp-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.py8
-rw-r--r--test/make_global_settings/ar/gyptest-make_global_settings_ar.py12
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)