diff options
Diffstat (limited to 'src/engine/SCons/Builder.py')
-rw-r--r-- | src/engine/SCons/Builder.py | 15 |
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.""" |