使用SCons创建分层构建

6
我有一个包含一些子文件夹示例的库项目。
该库本身有一个SConstruct文件,每个示例都有自己的文件夹和SConstruct文件。
我想在主(根)SConstruct文件中添加一个目标,使我可以像往常一样编译库和所有示例。
是否存在现有的机制/生成器来实现这一点?
附言:我不想只有一个大的SConstruct文件,因为我希望示例文件夹保持独立。
2个回答

8

http://www.scons.org/doc/production/HTML/scons-man.html

Creating a Hierarchical Build

Notice that the file names specified in a subdirectory's SConscript file are relative to that subdirectory.

SConstruct:

env = Environment()
env.Program(target = 'foo', source = 'foo.c')

SConscript('sub/SConscript')

sub/SConscript:

env = Environment()
# Builds sub/foo from sub/foo.c
env.Program(target = 'foo', source = 'foo.c')

SConscript('dir/SConscript')

sub/dir/SConscript:

env = Environment()
# Builds sub/dir/foo from sub/dir/foo.c
env.Program(target = 'foo', source = 'foo.c')

文档中没有找到,这正是我所需要的。非常感谢。 - ereOn

4

对于像我这样从Google搜索到这个问题的人来说,我在这里找到了一个更完整的构建库和调用它的代码示例。

(如果回答这个老问题被不喜欢的话,我很抱歉--各种“scons”、“子目录”、“分层”、“构建”等组合的大量搜索建议访问这个页面,我想为其他人节省我刚刚花费的8小时以上的时间,试图让分层构建清洁地工作)。


确实是一个很好的参考。经过几年的努力,我终于使用SCons分层构建实现了我的目标:将项目分成几个库/示例/应用程序,所有这些都使用相同的SCons文件。 - ereOn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接