Index: test/compiler-override/gyptest-compiler.py |
diff --git a/test/compiler-override/gyptest-compiler.py b/test/compiler-override/gyptest-compiler.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..4ad8d5532a93dd7ec7acda32d9b829ebeb4136f2 |
--- /dev/null |
+++ b/test/compiler-override/gyptest-compiler.py |
@@ -0,0 +1,54 @@ |
+#!/usr/bin/env python |
+# Copyright (c) 2012 Google Inc. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+""" |
+Verifies that the user can override the compiler and linker using LD_target |
+and CC_target. |
+""" |
+ |
+import TestGyp |
+import os |
+import copy |
+ |
+here = os.path.dirname(os.path.abspath(__file__)) |
+ |
+test = TestGyp.TestGyp(formats=['ninja', 'make']) |
+ |
+def CheckCompiler(test, gypfile, check_for): |
+ test.run_gyp(gypfile) |
+ test.build(gypfile) |
+ |
+ # We can't test to presence of my_ld.py in the output since |
+ # ninja will use CXX_target as the linker regardless |
+ test.must_contain_all_lines(test.stdout(), check_for) |
+ |
+oldenv = os.environ.copy() |
+try: |
+ # Check that CC, CXX and LD set target compiler |
+ os.environ['CC'] = 'python %s/my_cc.py FOO' % here |
+ os.environ['CXX'] = 'python %s/my_cxx.py FOO' % here |
+ os.environ['LD'] = 'python %s/my_ld.py FOO' % here |
+ CheckCompiler(test, 'compiler.gyp', ['my_cc.py', 'my_cxx.py', 'FOO']) |
+ |
+ # Check that the old behaviour of setting CC_target still |
+ # overrides CC as target compiler |
+ os.environ['CC_target'] = 'python %s/my_cc.py BAR' % here |
+ os.environ['CXX_target'] = 'python %s/my_cxx.py BAR' % here |
+ os.environ['LD_target'] = 'python %s/my_ld.py BAR' % here |
+ CheckCompiler(test, 'compiler.gyp', ['my_cc.py', 'my_cxx.py', 'BAR']) |
+finally: |
+ os.environ.clear() |
+ os.environ.update(oldenv) |
+ |
+try: |
+ # Check that CC_host sets host compilee |
+ os.environ['CC_host'] = 'python %s/my_cc.py HOST' % here |
+ os.environ['CXX_host'] = 'python %s/my_cxx.py HOST' % here |
+ os.environ['LD_host'] = 'python %s/my_ld.py HOST' % here |
+ CheckCompiler(test, 'compiler-host.gyp', ['my_cc.py', 'my_cxx.py', 'HOST']) |
+finally: |
+ os.environ.clear() |
+ os.environ.update(oldenv) |
+ |
+test.pass_test() |