【发布时间】:2012-06-02 00:01:29
【问题描述】:
我是 scons 的新手,正在尝试移植现有的 Visual Studio 解决方案 (.sln),该解决方案在内部引用了许多 VS 项目文件 (.vcxproj)。这是多个输出,包括各种库和不同的可执行文件。
从概念的角度来看,我不确定自己是否走在正确的道路上,如果能提供任何关于如何做得更好的建议,我将不胜感激。
这是我的设置:
我在代码仓库的根目录中有一个顶级 SConstruct 文件。此外,我的每个旧 VS 项目文件都有一个 SConscript 文件。 SConstruct 文件为每个 SConscript 文件调用一次 SConscript 函数,它在其中指定源目录以及输出应作为参数的位置。
另外,SConstruct 文件创建并向每个 SConstruct 文件传递一个 scons 环境实例数组。例如,有一个用于编译库,一个用于编译可执行文件,一个用于调试配置,一个用于发布等,然后每个 SConscript 文件根据它要完成的任务选择它想要的一个。
有几件事我想知道: 1)有没有比创建多个不同的环境更好的方法,每个配置变化一个?这是预期的使用模式吗? 2)在visual studio中,我可以右键单击特定项目并选择构建以仅构建该项目及其依赖的项目,忽略sln中的其余依赖关系图。使用 scons,它是否真的会在我每次触发特定库的构建时重新计算整个依赖图,即使理论上它只需要计算整个依赖图的一小部分。
感谢您的建议。
标记
【问题讨论】: