未指定目标时显示帮助

时间:2014-12-11 08:32:25

标签: python scons

在我使用的许多Makefile中,默认目标是简单地显示可以制作的目标列表。 E.g。

$ make
Available targets:
    foo        Make the foo thing
    bar        Make the bar thing

这可以在SCons中使用吗?

我找到了Help()函数来指定帮助文本,但这只适用于您调用scons -h

我发现Default()函数指定了默认目标。但是,我无法将所有内容挂钩,因此如果您只需输入scons,它就会打印帮助文字。

2 个答案:

答案 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))

请注意,baseEnvcommand_line_vars是在本节之前设置的。