【发布时间】:2015-09-05 05:03:11
【问题描述】:
SCons 中是否有一种简单的方法可以创建一个目标,如果命名文件被验证不存在,则该目标被认为是最新的? (当然,要有一个构建器,如果文件确实存在则删除它......)
例如:
b_file = env.Command("files", ["file1", "file2", "file3"], "构建文件 -o $TARGET $SOURCES")
env.Depends(b_file,env.FileMustNotExist("file4"))
这个想法是,在构建“文件”之前,SCons 不仅要确保“file1”、“file2”和“file3”存在,而且“file4”不存在。
我知道对于这种特殊情况,我可以通过在命令的开头添加“rm -f file4;”来近似我想要的,但这并不完全相同。特别是,如果我将“rm”命令添加到构建器,然后在 SCons 之外创建“file4”,则重新运行 SCons 不会删除“file4”,除非其他来源之一发生了变化。
我希望创建“file4”并重新运行 SCons 会导致简单地删除“file4”并指示“files”现在已构建。
【问题讨论】:
标签: scons