diff options
author | Steven Knight <knight@baldmt.com> | 2008-10-15 14:16:13 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2008-10-15 14:16:13 (GMT) |
commit | 96edb2c80e97965974608eb143500353425f8d8e (patch) | |
tree | 9c9cf4393cf506e6dce46601469c5489aa471044 /src/engine/SCons/Script | |
parent | 2d343867b73c005e7f429410d4e7956780770eb6 (diff) | |
download | SCons-96edb2c80e97965974608eb143500353425f8d8e.zip SCons-96edb2c80e97965974608eb143500353425f8d8e.tar.gz SCons-96edb2c80e97965974608eb143500353425f8d8e.tar.bz2 |
Support the -f option allowing specification of a different top-level
"SConstruct" file name to search for when using the -D, -U or -u options.
Diffstat (limited to 'src/engine/SCons/Script')
-rw-r--r-- | src/engine/SCons/Script/Main.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index 22ca331..7b6b52b 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -600,12 +600,14 @@ def _scons_internal_error(): traceback.print_exc() sys.exit(2) -def _SConstruct_exists(dirname='', repositories=[]): +def _SConstruct_exists(dirname='', repositories=[], filelist=None): """This function checks that an SConstruct file exists in a directory. If so, it returns the path of the file. By default, it checks the current directory. """ - for file in ['SConstruct', 'Sconstruct', 'sconstruct']: + if not filelist: + filelist = ['SConstruct', 'Sconstruct', 'sconstruct'] + for file in filelist: sfile = os.path.join(dirname, file) if os.path.isfile(sfile): return sfile @@ -779,13 +781,15 @@ def _main(parser): if options.climb_up: target_top = '.' # directory to prepend to targets script_dir = os.getcwd() # location of script - while script_dir and not _SConstruct_exists(script_dir, options.repository): + while script_dir and not _SConstruct_exists(script_dir, + options.repository, + options.file): script_dir, last_part = os.path.split(script_dir) if last_part: target_top = os.path.join(last_part, target_top) else: script_dir = '' - if script_dir: + if script_dir and script_dir != os.getcwd(): display("scons: Entering directory `%s'" % script_dir) os.chdir(script_dir) @@ -804,7 +808,8 @@ def _main(parser): if options.file: scripts.extend(options.file) if not scripts: - sfile = _SConstruct_exists(repositories=options.repository) + sfile = _SConstruct_exists(repositories=options.repository, + filelist=options.file) if sfile: scripts.append(sfile) |