linux: Don't set CXX to clang when building node modules.
authorCheng Zhao <zcbenz@gmail.com>
Sat, 9 Aug 2014 01:22:06 +0000 (09:22 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Sat, 9 Aug 2014 01:24:17 +0000 (09:24 +0800)
.travis.yml
script/cibuild
script/lib/util.py

index a2686f8..3678c68 100644 (file)
@@ -1,5 +1,5 @@
 language: cpp
-compiler: gcc
+compiler: clang
 os:
   - linux
   - osx
index 2343fa5..c8ad4a6 100755 (executable)
@@ -4,7 +4,7 @@ import os
 import subprocess
 import sys
 
-from lib.util import rm_rf
+from lib.util import execute, rm_rf, scoped_env
 
 
 SOURCE_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
@@ -21,9 +21,10 @@ LINUX_DEPS = [
 def main():
   os.environ['CI'] = '1'
 
-  if os.environ['TRAVIS'] == 'true' and sys.platform == 'linux2':
-    subprocess.check_call(['sudo', 'apt-get', 'update'])
-    subprocess.check_call(['sudo', 'apt-get', 'install'] + LINUX_DEPS)
+  is_travis = (os.getenv('TRAVIS') == 'true')
+  if is_travis and sys.platform == 'linux2':
+    execute(['sudo', 'apt-get', 'update'])
+    execute(['sudo', 'apt-get', 'install'] + LINUX_DEPS)
 
   rm_rf(os.path.join(SOURCE_ROOT, 'out'))
   rm_rf(os.path.join(SOURCE_ROOT, 'node_modules'))
@@ -33,7 +34,14 @@ def main():
   rm_rf(os.path.join(SOURCE_ROOT, 'vendor', 'brightray', 'vendor', 'download',
                      'libchromiumcontent'))
 
-  run_script('bootstrap.py')
+  if is_travis and sys.platform == 'linux2':
+    with scoped_env('CXX', 'g++'):
+      with scoped_env('CC', 'gcc'):
+        run_script('bootstrap.py')
+    run_script('update.py')
+  else:
+    run_script('bootstrap.py')
+
   run_script('cpplint.py')
   if sys.platform != 'win32':
     run_script('pylint.py')
index 1759574..f817150 100644 (file)
@@ -29,6 +29,18 @@ def scoped_cwd(path):
     os.chdir(cwd)
 
 
+@contextlib.contextmanager
+def scoped_env(key, value):
+  origin = ''
+  if key in os.environ:
+    origin = os.environ[key]
+  os.environ[key] = value
+  try:
+    yield
+  finally:
+    os.environ[key] = origin
+
+
 def download(text, url, path):
   safe_mkdir(os.path.dirname(path))
   with open(path, 'wb') as local_file: