我有一个库项目,其中包含子文件夹中的一些示例。
库本身有一个SConstruct
文件,每个示例都有自己的文件夹和自己的SConstruct
文件。
我想在主(根)SConstruct
文件中添加一个目标,这样我就可以像往常一样编译库,并立即编译所有样本。
是否有现有的机制/构建器?
P.S:我不想只有一个大的SConstruct
文件,因为我希望样本文件夹保持独立。
答案 0 :(得分:8)
http://www.scons.org/doc/production/HTML/scons-man.html
创建分层构建
请注意指定的文件名 在子目录的SConscript文件中 是相对于该子目录。
SConstruct:
env = Environment() env.Program(target = 'foo', source = 'foo.c') SConscript('sub/SConscript')
子/ SConscript:
env = Environment() # Builds sub/foo from sub/foo.c env.Program(target = 'foo', source = 'foo.c') SConscript('dir/SConscript')
子/目录/ SConscript:
env = Environment() # Builds sub/dir/foo from sub/dir/foo.c env.Program(target = 'foo', source = 'foo.c')
答案 1 :(得分:4)
对于像我这样来自谷歌这个问题的人,我找到了一个更完整的例子来构建一个名为here的库和代码。
(如果对这个旧问题的回答不满意而道歉 - 对“scons”“子目录”“分层”“构建”等各种组合的大量搜索建议此页面,我想要为了节省其他人8个多小时,我只是试图让层次化构建干净利落地工作。)