diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2009-12-05 02:39:27 (GMT) |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2009-12-05 02:39:27 (GMT) |
commit | 37689e305adae32d009ae3a5802015e35fe31668 (patch) | |
tree | 187d65ca657c533e56625daffc8154dddccd9408 | |
parent | 3bbb6edb17c8c7133cb15fc3ac7a7d5556daf005 (diff) | |
download | SCons-37689e305adae32d009ae3a5802015e35fe31668.zip SCons-37689e305adae32d009ae3a5802015e35fe31668.tar.gz SCons-37689e305adae32d009ae3a5802015e35fe31668.tar.bz2 |
Integrate patch from issue #2436: fix regression from r3691 which stopped printing "Entering Directory" with -C/-u.
-rw-r--r-- | src/engine/SCons/Script/Main.py | 17 | ||||
-rw-r--r-- | test/option--C.py | 20 |
2 files changed, 21 insertions, 16 deletions
diff --git a/src/engine/SCons/Script/Main.py b/src/engine/SCons/Script/Main.py index dd4f519..082de34 100644 --- a/src/engine/SCons/Script/Main.py +++ b/src/engine/SCons/Script/Main.py @@ -806,16 +806,13 @@ def _main(parser): # want to start everything, which means first handling any relevant # options that might cause us to chdir somewhere (-C, -D, -U, -u). if options.directory: - cdir = _create_path(options.directory) - try: - os.chdir(cdir) - except OSError: - sys.stderr.write("Could not change directory to %s\n" % cdir) + script_dir = os.path.abspath(_create_path(options.directory)) + else: + script_dir = os.getcwd() target_top = None 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, options.file): @@ -824,9 +821,13 @@ def _main(parser): target_top = os.path.join(last_part, target_top) else: script_dir = '' - if script_dir and script_dir != os.getcwd(): - display("scons: Entering directory `%s'" % script_dir) + + if script_dir and script_dir != os.getcwd(): + display("scons: Entering directory `%s'" % script_dir) + try: os.chdir(script_dir) + except OSError: + sys.stderr.write("Could not change directory to %s\n" % script_dir) # Now that we're in the top-level SConstruct directory, go ahead # and initialize the FS object that represents the file system, diff --git a/test/option--C.py b/test/option--C.py index fac7548..3d93d2f 100644 --- a/test/option--C.py +++ b/test/option--C.py @@ -68,24 +68,28 @@ print env.GetBuildPath('../$FOO/$BAR') """) test.run(arguments = '-C sub .', - stdout = test.wrap_stdout(read_str = '%s\n' % wpath, - build_str = "scons: `.' is up to date.\n")) + stdout = "scons: Entering directory `%s'\n" % wpath_sub \ + + test.wrap_stdout(read_str = '%s\n' % wpath, + build_str = "scons: `.' is up to date.\n")) test.run(arguments = '-C sub -C dir .', - stdout = test.wrap_stdout(read_str = '%s\n' % wpath_sub_foo_bar, - build_str = "scons: `.' is up to date.\n")) + stdout = "scons: Entering directory `%s'\n" % wpath_sub_dir \ + + test.wrap_stdout(read_str = '%s\n' % wpath_sub_foo_bar, + build_str = "scons: `.' is up to date.\n")) test.run(arguments = ".", stdout = test.wrap_stdout(read_str = 'SConstruct %s\n' % wpath, build_str = "scons: `.' is up to date.\n")) test.run(arguments = '--directory=sub/dir .', - stdout = test.wrap_stdout(read_str = '%s\n' % wpath_sub_foo_bar, - build_str = "scons: `.' is up to date.\n")) + stdout = "scons: Entering directory `%s'\n" % wpath_sub_dir \ + + test.wrap_stdout(read_str = '%s\n' % wpath_sub_foo_bar, + build_str = "scons: `.' is up to date.\n")) test.run(arguments = '-C %s -C %s .' % (wpath_sub_dir, wpath_sub), - stdout = test.wrap_stdout(read_str = '%s\n' % wpath, - build_str = "scons: `.' is up to date.\n")) + stdout = "scons: Entering directory `%s'\n" % wpath_sub \ + + test.wrap_stdout(read_str = '%s\n' % wpath, + build_str = "scons: `.' is up to date.\n")) test.pass_test() |