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