我希望scons始终将构建的文件安装在其他几个目录中。
我创建了常用的安装构建器,其中包含用户手册中显示的别名,当我使用scons install
时,它会正确安装,但我更喜欢在构建目标后自动运行,我无法弄清楚如何指定依赖项
Target = Program(...)
Env.Alias('install', Env.Install(FinalDir, Target))
目标是否依赖于安装,反之亦然或者我应该使用其他东西吗?
答案 0 :(得分:2)
您的代码看起来很好。我怀疑你真正想要的是你希望它总是在FinalDir中安装目标,即使你没有指定'install'作为命令行arg,即当你只是说{{ 1}}。在这种情况下,请查看man page中的scons
方法。您可以将“安装”别名添加到SCons构建的默认目标集中。 (“默认默认值”,如果您不更改它并且不在命令行上传递任何目标,则是当前目录下的所有内容。)
答案 1 :(得分:0)
我采用错误的方式定义install
目标并试图弄清楚如何自动运行它。
我通过将“安装”构建器别名化为我想要安装的实际文件名而不是install
来解决它。
Env.Alias('/some/dir/filename', Env.Install('/some/dir', Target))