summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Builder.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Builder.py')
-rw-r--r--src/engine/SCons/Builder.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/engine/SCons/Builder.py b/src/engine/SCons/Builder.py
index 72b01cf..2852b3a 100644
--- a/src/engine/SCons/Builder.py
+++ b/src/engine/SCons/Builder.py
@@ -94,7 +94,20 @@ class CommandAction(ActionBase):
if print_actions:
self.show(cmd)
if execute_actions:
- os.system(cmd)
+ pid = os.fork()
+ if not pid:
+ # Child process.
+ args = string.split(cmd)
+ try:
+ ENV = kw['ENV']
+ except:
+ import SCons.Defaults
+ ENV = SCons.Defaults.ENV
+ os.execvpe(args[0], args, ENV)
+ else:
+ # Parent process.
+ os.waitpid(pid, 0)
+
class FunctionAction(ActionBase):
"""Class for Python function actions."""