使用SCons创建分层构建

时间:2010-09-14 13:30:50

标签: python scons

我有一个库项目,其中包含子文件夹中的一些示例。

库本身有一个SConstruct文件,每个示例都有自己的文件夹和自己的SConstruct文件。

我想在主(根)SConstruct文件中添加一个目标,这样我就可以像往常一样编译库,并立即编译所有样本。

是否有现有的机制/构建器?

P.S:我不想只有一个大的SConstruct文件,因为我希望样本文件夹保持独立。

2 个答案:

答案 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个多小时,我只是试图让层次化构建干净利落地工作。)