summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-11-22 22:38:22 (GMT)
committerSteven Knight <knight@baldmt.com>2002-11-22 22:38:22 (GMT)
commitc7ac33dc426b2bab7636bbade3c6dbc726eb3a71 (patch)
tree40285c73822414ef23a23bb98a95756e2864cb5c /src
parent8afed5c0a1749053e08465a4c9cf8d05f8fe2340 (diff)
downloadSCons-c7ac33dc426b2bab7636bbade3c6dbc726eb3a71.zip
SCons-c7ac33dc426b2bab7636bbade3c6dbc726eb3a71.tar.gz
SCons-c7ac33dc426b2bab7636bbade3c6dbc726eb3a71.tar.bz2
Make Default(source) and -U fail gracefully. (Anthony Roach)
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt2
-rw-r--r--src/engine/SCons/Script/__init__.py10
2 files changed, 10 insertions, 2 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 957209f..4f071a2 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -113,6 +113,8 @@ RELEASE 0.09 -
- Add a SetContentSignatureType() function, allowing use of file
timestamps instead of MD5 signatures.
+ - Make -U and Default('source') fail gracefully.
+
From sam th:
- Dynamically check for the existence of utilities with which to
diff --git a/src/engine/SCons/Script/__init__.py b/src/engine/SCons/Script/__init__.py
index bc6451c..3f3ff8d 100644
--- a/src/engine/SCons/Script/__init__.py
+++ b/src/engine/SCons/Script/__init__.py
@@ -742,8 +742,14 @@ def _main():
# -U with default targets
default_targets = SCons.Script.SConscript.default_targets
def check_dir(x, target_top=target_top):
- cwd = x.cwd.srcnode()
- return cwd == target_top
+ if hasattr(x, 'cwd') and not x.cwd is None:
+ cwd = x.cwd.srcnode()
+ return cwd == target_top
+ else:
+ # x doesn't have a cwd, so it's either not a target,
+ # or not a file, so go ahead and keep it as a default
+ # target and let the engine sort it out:
+ return 1
default_targets = filter(check_dir, default_targets)
SCons.Script.SConscript.default_targets = default_targets
target_top = None