diff options
author | Sigmund Vik <sigmund_vik@yahoo.com> | 2012-03-20 14:26:50 +0100 |
---|---|---|
committer | Sigmund Vik <sigmund_vik@yahoo.com> | 2012-03-20 14:26:50 +0100 |
commit | f829735cc3e20e5d2165a020e87c4128d2ed9792 (patch) | |
tree | 6a4d4589ec780ee560e4a8ab8bc8ab55318e4d34 /em++ | |
parent | be2dafadec0e5a39e3e55a3663183ca6a8dd5d8e (diff) |
Misc fixes for Windows.
Most of these changes have to do with how python scripts are invoked.
For Linux, 'Popen([EMCC] + args)' works because the first line in emcc
is '#!/usr/bin/env python'. On Windows, the python interpreter has
to be explicitly invoked, e.g. 'Popen(['python', EMCC] + args)'. Note
that there is no harm in explicitly invoking the python interpreter
on Linux, so this works on both platforms.
For Windows, execvp() behaves differently than on Linux:
http://mail.python.org/pipermail/python-list/2002-July/763863.html
http://msdn.microsoft.com/en-us/library/3xw6zy53.aspx
This causes many strange things to happen as the parent process
terminated before its children. In this change the use of execvp()
has been replaced with subprocess.call().
This change also fixes some code that assumed that the path separator
always is '/', but for Windows it is '\'. And where the path module
can be required, we use path.normalize() and path.resolve() to check
if a filename is absolute in a platform agnostic manner.
Diffstat (limited to 'em++')
-rwxr-xr-x | em++ | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -4,9 +4,9 @@ See emcc.py. This script forwards to there, noting that we want C++ and not C by default ''' -import os, sys +import os, subprocess, sys from tools import shared os.environ['EMMAKEN_CXX'] = '1' -exit(os.execvp(shared.EMCC, [shared.EMCC] + sys.argv[1:])) +exit(subprocess.call(['python', shared.EMCC] + sys.argv[1:])) |