[BuildRelease]跨平台构建工具SCons
一 SCons
SCons是下一代的开源的软件构建工具。
参考:http://www.angelfire.com/linux/skip/Articles/SConsExamples.html
二 Scons特点
特点如下:
1)配置文件是python脚本(使用功能强大的真实的编程语言解决build的问题)。
2)内置的C/C++/Fortran的可信的,自动的依赖分析,不在需要make depend或make clean来得到所有的依赖关系。依赖关系分析很容易使用用户定义的dependency scanner扩展到其他的语言和文件类型。
3)内置的支持c/c++/d/java/fortran/yacc/lex/qt/swig和构建tex和latex文档。很容易通过用户定义的builder来支持其他的语言和文件类型。
4)build从源码管理工具(SVN。。。)或其他的build脚本(ant。。。)。
5)内置支持从源码管理工具fetch代码,例如sccs,rcs,cvs,bitkeeper和perforce。
6)内置支持所有的Microsoft VisualStudio的所有版本,包括产生dsp,dsw,sln和vcproj文件。
7)可信的使用MD5签名来检测build的changes,同时也支持配置为传统的时间戳来检测changes。
8)改进了并行build,像make -j,同时运行N个job,不决定于目录的继承结构。
9)集成像autoconf的find #include 文件,libraries,functions和typedefs。
10)所有的依赖的Global view。
11)能够share built files in a cache to speed up multiple builds, 像CCache但是不局限于C/C++。
12)从一开始就设计为跨平台,所以支持所有的系统(known to work on Linux, other POSIX systems (including AIX, *BSD systems, HP/UX, IRIX and Solaris), Windows NT, Mac OS X, and OS/2.)。
三 实例hello
1)文件:
│
└─sample
hello.c
SConstruct
2)hello.c
int main() {
printf("Hello World.");
}
3)SConstruct
4)build
四 other
1)Builder: Program(),Library(),SharedLibrary(),Object(),Other Language Builders。program(''hello.c)。
2) Construction environment: 环境变量。env=Environment(CC = 'gcc', CCFLAGS = '-O2')。
3) SConstruct: 跟目录下的SConstruct file。
4)SConscript:子目录下的Sconscript file。
完!