t = self.targets[0]
if self.top and not t.has_builder() and not t.side_effect:
if not t.exists():
- errstr="Do not know how to make target `%s'." % t
+ def classname(obj):
+ return string.split(str(obj.__class__), '.')[-1]
+ if classname(t) in ('File', 'Dir', 'Entry'):
+ errstr="Do not know how to make %s target `%s' (%s)." % (classname(t), t, t.abspath)
+ else: # Alias or Python or ...
+ errstr="Do not know how to make %s target `%s'." % (classname(t), t)
sys.stderr.write("scons: *** " + errstr)
if not self.options.keep_going:
sys.stderr.write(" Stop.")
Default('not_a_target.in')
""")
-test.run(arguments = '-U', status=2, stderr="""\
-scons: *** Do not know how to make target `not_a_target.in'. Stop.
+test.run(arguments = '-U', status=2, match=TestSCons.match_re, stderr="""\
+scons: \*\*\* Do not know how to make File target `not_a_target.in' \(.*not_a_target.in\). Stop.
""")
test.pass_test()
test.must_not_contain_any_line(test.stderr(), ['Exception', 'Traceback'])
+# Bug #1053: Alias is called "all", but default is the File "all"
+test.write('SConstruct', """
+env = Environment()
+env.Default("all")
+env.Alias("all", env.Install("dir", "file.txt"))
+""")
+test.run(status=2, match=TestSCons.match_re, stderr="""\
+scons: \*\*\* Do not know how to make File target `all' \(.*all\). Stop.
+""")
+
# No tests failed; OK.
test.pass_test()
""")
test.run(arguments = 'foo',
- stderr = "scons: \\*\\*\\* Do not know how to make target `foo'.( *Stop.)?\n",
+ stderr = "scons: \\*\\*\\* Do not know how to make File target `foo' \\(.*foo\\).( *Stop.)?\n",
status = 2,
match=TestSCons.match_re_dotall)
test.run(arguments = '-k foo/bar foo',
- stderr = "scons: *** Do not know how to make target `%s'.\n" % foo_bar,
- status = 2)
+ stderr = "scons: \\*\\*\\* Do not know how to make File target `%s' \\(.*foo.bar\\).\n" % foo_bar,
+ status = 2,
+ match=TestSCons.match_re_dotall)
test.run(arguments = "aaa.out",
stderr = "scons: *** [aaa.out] Source `aaa.in' not found, needed by target `aaa.out'.\n",
status = 2)
test.run(arguments = '-k aaa.in bbb.in',
- stderr = """scons: *** Do not know how to make target `aaa.in'.
-scons: *** Do not know how to make target `bbb.in'.
+ stderr = """scons: \\*\\*\\* Do not know how to make File target `aaa.in' \\(.*aaa.in\\).
+scons: \\*\\*\\* Do not know how to make File target `bbb.in' \\(.*bbb.in\\).
""",
- status = 2)
+ status = 2,
+ match=TestSCons.match_re_dotall)
test.run(arguments = 'xxx',
- stderr = "scons: \\*\\*\\* Do not know how to make target `xxx'.( *Stop.)?\n",
+ stderr = "scons: \\*\\*\\* Do not know how to make File target `xxx' \\(.*xxx\\).( *Stop.)?\n",
status = 2,
match=TestSCons.match_re_dotall)