diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-12-19 15:53:52 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-12-19 15:53:52 -0800 |
commit | 5445cdd01d408e5f1a0d1a23b29b30a973560ced (patch) | |
tree | 995be7ae4b92d3acacb216e5b318129e4beece7e /tools | |
parent | 1c796635aa711764d18a47577d5e94ead309506c (diff) | |
parent | ad2edc2ca4d6a873a5797bb23cef546cc87b3ff7 (diff) |
Merge pull request #758 from alankligman/incoming
Python compatibility
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/bindings_generator.py | 2 | ||||
-rwxr-xr-x | tools/emconfiguren.py | 2 | ||||
-rwxr-xr-x | tools/emmaken.py | 2 | ||||
-rwxr-xr-x | tools/emmakenxx.py | 4 | ||||
-rwxr-xr-x | tools/exec_llvm.py | 2 | ||||
-rwxr-xr-x | tools/fix_closure.py | 2 | ||||
-rwxr-xr-x | tools/ll-strip.py | 2 | ||||
-rw-r--r-- | tools/make_minigzip.py | 2 | ||||
-rw-r--r-- | tools/namespacer.py | 2 | ||||
-rwxr-xr-x | tools/nativize_llvm.py | 2 | ||||
-rwxr-xr-x | tools/reproduceriter.py | 2 | ||||
-rw-r--r-- | tools/scons/site_scons/site_tools/emscripten/__init__.py | 2 | ||||
-rw-r--r-- | tools/scons/site_scons/site_tools/emscripten/emscripten.py | 2 | ||||
-rw-r--r-- | tools/settings_template_readonly.py | 1 | ||||
-rw-r--r-- | tools/shared.py | 21 |
15 files changed, 32 insertions, 18 deletions
diff --git a/tools/bindings_generator.py b/tools/bindings_generator.py index 0c7c814f..d2c165a2 100755 --- a/tools/bindings_generator.py +++ b/tools/bindings_generator.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 ''' Use CppHeaderParser to parse some C++ headers, and generate binding code for them. diff --git a/tools/emconfiguren.py b/tools/emconfiguren.py index fd7b7549..35d83b87 100755 --- a/tools/emconfiguren.py +++ b/tools/emconfiguren.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import sys print >> sys.stderr, '\n\nemconfiguren.py is deprecated! use "emconfigure"\n\n' diff --git a/tools/emmaken.py b/tools/emmaken.py index ae4794f0..77405761 100755 --- a/tools/emmaken.py +++ b/tools/emmaken.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import sys print >> sys.stderr, '\n\nemmaken.py is deprecated! use "emcc"\n\n' diff --git a/tools/emmakenxx.py b/tools/emmakenxx.py index 1c31f3c2..0af3f99e 100755 --- a/tools/emmakenxx.py +++ b/tools/emmakenxx.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 ''' see emmaken.py @@ -14,5 +14,5 @@ from tools.shared import * emmaken = path_from_root('tools', 'emmaken.py') os.environ['EMMAKEN_CXX'] = '1' -exit(subprocess.call(['python', emmaken] + sys.argv[1:])) +exit(subprocess.call([PYTHON, emmaken] + sys.argv[1:])) diff --git a/tools/exec_llvm.py b/tools/exec_llvm.py index 71c0f18d..2685f9e4 100755 --- a/tools/exec_llvm.py +++ b/tools/exec_llvm.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 ''' Small utility to execute some llvm bitcode. diff --git a/tools/fix_closure.py b/tools/fix_closure.py index ab2dacbc..91d2a866 100755 --- a/tools/fix_closure.py +++ b/tools/fix_closure.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 ''' With very very large projects, closure compiler can translate FUNCTION_TABLE into something like diff --git a/tools/ll-strip.py b/tools/ll-strip.py index b03e4f3a..a08da478 100755 --- a/tools/ll-strip.py +++ b/tools/ll-strip.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 import sys, re diff --git a/tools/make_minigzip.py b/tools/make_minigzip.py index 60177318..0c96457b 100644 --- a/tools/make_minigzip.py +++ b/tools/make_minigzip.py @@ -9,5 +9,5 @@ zlib = shared.Building.build_library('zlib', shared.EMSCRIPTEN_TEMP_DIR, shared. print 'Building minigzip' -Popen(['python', shared.EMCC, '-O2', shared.path_from_root('tests', 'zlib', 'minigzip.c'), zlib, '-o', shared.path_from_root('tools', 'minigzip.js')]).communicate() +Popen(['python2', shared.EMCC, '-O2', shared.path_from_root('tests', 'zlib', 'minigzip.c'), zlib, '-o', shared.path_from_root('tools', 'minigzip.js')]).communicate() diff --git a/tools/namespacer.py b/tools/namespacer.py index 810689eb..81b8d2d1 100644 --- a/tools/namespacer.py +++ b/tools/namespacer.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python2 ''' Tool that generates namespace boilerplate. Given diff --git a/tools/nativize_llvm.py b/tools/nativize_llvm.py index de78dce2..e76b9a4e 100755 --- a/tools/nativize_llvm.py +++ b/tools/nativize_llvm.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python2 ''' Small utility to build some llvm bitcode into native code. Useful when lli (called diff --git a/tools/reproduceriter.py b/tools/reproduceriter.py index 058eeecf..c820978b 100755 --- a/tools/reproduceriter.py +++ b/tools/reproduceriter.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 ''' Reproducer Rewriter diff --git a/tools/scons/site_scons/site_tools/emscripten/__init__.py b/tools/scons/site_scons/site_tools/emscripten/__init__.py index 8ae2288e..ebd2c21b 100644 --- a/tools/scons/site_scons/site_tools/emscripten/__init__.py +++ b/tools/scons/site_scons/site_tools/emscripten/__init__.py @@ -1,3 +1,3 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 from emscripten import exists, generate diff --git a/tools/scons/site_scons/site_tools/emscripten/emscripten.py b/tools/scons/site_scons/site_tools/emscripten/emscripten.py index ce704bf8..5abd4fee 100644 --- a/tools/scons/site_scons/site_tools/emscripten/emscripten.py +++ b/tools/scons/site_scons/site_tools/emscripten/emscripten.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 import os diff --git a/tools/settings_template_readonly.py b/tools/settings_template_readonly.py index 93ea2036..970a8f8c 100644 --- a/tools/settings_template_readonly.py +++ b/tools/settings_template_readonly.py @@ -7,6 +7,7 @@ import os # this helps projects using emscripten find it EMSCRIPTEN_ROOT = os.path.expanduser(os.getenv('EMSCRIPTEN') or '{{{ EMSCRIPTEN_ROOT }}}') LLVM_ROOT = os.path.expanduser(os.getenv('LLVM') or '{{{ LLVM_ROOT }}}') +PYTHON = os.path.expanduser(os.getenv('PYTHON') or '{{{ PYTHON }}}') # See below for notes on which JS engine(s) you need NODE_JS = os.path.expanduser(os.getenv('NODE') or '{{{ NODE }}}') diff --git a/tools/shared.py b/tools/shared.py index 4b63d436..461f0561 100644 --- a/tools/shared.py +++ b/tools/shared.py @@ -96,6 +96,12 @@ else: except: pass config_file = config_file.replace('{{{ NODE }}}', node) + python = 'python' + try: + python = Popen(['which', 'python'], stdout=PIPE).communicate()[0].replace('\n', '') + except: + pass + config_file = config_file.replace('{{{ PYTHON }}}', python) # write open(CONFIG_FILE, 'w').write(config_file) @@ -110,6 +116,7 @@ A settings file has been copied to %s, at absolute path: %s It contains our best guesses for the important paths, which are: LLVM_ROOT = %s + PYTHON = %s NODE_JS = %s EMSCRIPTEN_ROOT = %s @@ -117,7 +124,7 @@ Please edit the file if any of those are incorrect. This command will now exit. When you are done editing those paths, re-run it. ============================================================================== -''' % (EM_CONFIG, CONFIG_FILE, llvm_root, node, __rootpath__) +''' % (EM_CONFIG, CONFIG_FILE, llvm_root, python, node, __rootpath__) sys.exit(0) try: config_text = open(CONFIG_FILE, 'r').read() if CONFIG_FILE else EM_CONFIG @@ -319,6 +326,12 @@ except: CLOSURE_COMPILER = path_from_root('third_party', 'closure-compiler', 'compiler.jar') try: + PYTHON +except: + print >> sys.stderr, 'PYTHON not defined in ~/.emscripten, using "python"' + PYTHON = 'python' + +try: JAVA except: print >> sys.stderr, 'JAVA not defined in ~/.emscripten, using "java"' @@ -862,13 +875,13 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e if output_filename is None: output_filename = filename + '.o' try_delete(output_filename) - Popen(ENV_PREFIX + ['python', EMCC, filename] + args + ['-o', output_filename], stdout=stdout, stderr=stderr, env=env).communicate() + Popen([PYTHON, EMCC, filename] + args + ['-o', output_filename], stdout=stdout, stderr=stderr, env=env).communicate() assert os.path.exists(output_filename), 'emcc could not create output file' @staticmethod def emar(action, output_filename, filenames, stdout=None, stderr=None, env=None): try_delete(output_filename) - Popen(ENV_PREFIX + ['python', EMAR, action, output_filename] + filenames, stdout=stdout, stderr=stderr, env=env).communicate() + Popen([PYTHON, EMAR, action, output_filename] + filenames, stdout=stdout, stderr=stderr, env=env).communicate() if 'c' in action: assert os.path.exists(output_filename), 'emar could not create output file' @@ -879,7 +892,7 @@ set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)''' % { 'winfix': '' if not WINDOWS e # Run Emscripten settings = Settings.serialize() - compiler_output = timeout_run(Popen(ENV_PREFIX + ['python', EMSCRIPTEN, filename + ('.o.ll' if append_ext else ''), '-o', filename + '.o.js'] + settings + extra_args, stdout=PIPE), None, 'Compiling') + compiler_output = timeout_run(Popen([PYTHON, EMSCRIPTEN, filename + ('.o.ll' if append_ext else ''), '-o', filename + '.o.js'] + settings + extra_args, stdout=PIPE), None, 'Compiling') #print compiler_output # Detect compilation crashes and errors |