我正在尝试 Scons,但在按我的喜好安排时遇到了问题。我有两个相关的项目,一个带有生产代码,另一个带有测试,其排列方式如下:
- 根
- 根/生产
- 根/单元测试
我想配置我的构建,以便我可以输入:
- scons - 从 Root 构建两者
- 来自生产的 scons 仅构建生产代码
- 来自 UnitTests 的 scons 仅构建单元测试
现在我该怎么做呢?如果我在根目录有 SConstruct,在生产和单元测试中有 SConscript,我只能从根目录构建。但是,如果我在每个级别都有 SConscript,而 Root 的人在子目录中调用它们:
# Just call Sconscripts for src and unitTests
SConscript('production/SConstruct')
SConscript('unitTests/SConstruct')
然后,虽然它确实按预期构建,但它会吐出大量关于Two different environments were specified for target (...)
. 在这种情况下,生产和测试之间的构建确实很相似,但是一旦我让 scons 像我想要的那样工作,我就会转向管理一个更大的不一定相关的项目套件。