diff options
Diffstat (limited to 'src/engine/SCons/Tool/swig.py')
| -rw-r--r-- | src/engine/SCons/Tool/swig.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/engine/SCons/Tool/swig.py b/src/engine/SCons/Tool/swig.py index b62d593..fef1ff2 100644 --- a/src/engine/SCons/Tool/swig.py +++ b/src/engine/SCons/Tool/swig.py @@ -90,8 +90,18 @@ def _swigEmitter(target, source, env): mnames, directors = _find_modules(src) if directors: _add_director_header_targets(target, env) - target.extend(map(lambda m, d=target[0].dir: - d.File(m + ".py"), mnames)) + python_files = map(lambda m: m + ".py", mnames) + outdir = env.subst('$SWIGOUTDIR', target=target, source=source) + # .py files should be generated in SWIGOUTDIR if specified, + # otherwise in the same directory as the target + if outdir: + python_files = map(lambda j, o=outdir: + env.fs.File(os.path.join(o, j)), + python_files) + else: + python_files = map(lambda m, d=target[0].dir: + d.File(m), python_files) + target.extend(python_files) if "-java" in flags: if mnames is None: mnames, directors = _find_modules(src) |
