在我使用的许多Makefile中,默认目标是简单地显示可以制作的目标列表。 E.g。
$ make
Available targets:
foo Make the foo thing
bar Make the bar thing
这可以在SCons中使用吗?
我找到了Help()
函数来指定帮助文本,但这只适用于您调用scons -h
。
我发现Default()
函数指定了默认目标。但是,我无法将所有内容挂钩,因此如果您只需输入scons
,它就会打印帮助文字。
答案 0 :(得分:2)
是的,这是可能的。您可以使用变量COMMAND_LINE_TARGETS(请参阅SCons的MAN页面),该变量通常包含命令行中指定的目标(但不能通过Default()选项)。只需检查这样的零目标:
if not COMMAND_LINE_TARGETS:
print_available_targets()
sys.exit(0)
答案 1 :(得分:1)
我们使用以下内容(使用Default()
):
# Setup the default Help message
Help("""
Build binaries:
$ scons program # build the program
Run all unit tests:
$ scons unittests
Options:
""")
# Append descriptions for the command line options
Help(command_line_vars.GenerateHelpText(env))
# Ensure that no default targets exist, so you have to specify a target.
# Give some help about what targets are available.
def default(env, target, source): print SCons.Script.help_text
Default(baseEnv.Command('default', None, default))
请注意,baseEnv
和command_line_vars
是在本节之前设置的。