SConsSCons入门


备注

SCons是一个构建系统。它需要一堆输入文件并在它们上运行工具来产生输出。 SCons是用纯Python编写的,在Linux,Windows和OS X上的工作方式相同,可以在没有安装的情况下运行。

SCons的SConstruct文件是Python脚本,内置命令可创建build tree 。 SCons分阶段执行构建过程。首先是读取文件并构建构建树。其次是遍历树以构建目标文件。

版本

发布日期
2.5.1 2017年11月3日

入门

SCons运行后 ,创建一个名为SConstruct 的文件:

print('..Building World')
 

现在运行scons

$ scons
scons: Reading SConscript files ...
..Building World
scons: done reading SConscript files.
scons: Building targets ...
scons: `.' is up to date.
scons: done building targets.
 

SConstruct 是一个带有附加SCons功能的Python脚本。

Zip('archive', ['SConstruct'])
 

上面的脚本使用SCons提供的Zip() 函数将自身打包到archive.zipZip 是一个Builder - 它构建了来自多个的第一个参数指定的目标 ,它按照惯例作为Builders的第二个参数。

SCons Builders以大写字母开头,并在Environment对象上运行,该对象存储构建配置。 SCons提供默认环境 ,但可以显式创建它以分离构建变量,选择不同的工具等。

env = Environment()
env.Zip('archive', ['SConstruct'])
 

请注意,当您第二次运行脚本时,它不会构建任何内容。仅当源文件更改时,SCons才会重建目标。修改SConstruct 并再次运行scons 以查看差异。

SCons旨在可扩展。您可以通过将它们附加到环境来添加自己的Builder方法,这可以在以后的主题中介绍。