SCons是一個用Python的新一代軟體建構工具(SCons is a next-generation software construction tool),就像Make一樣可以建構軟體的工具。
CH 2.1. Build Simple C/C++ Programs
主要依具名為SConstruct的檔案進行建構,最小的SConstruct內容如下Program('hello.c')這裡面包含兩個資訊,你要建構的程式名稱(hello),以及從哪個檔案建構(hello.c),"Program"在文中被稱為builder_method,主要用於告訴SCons要建構執行檔。
% scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... cc -o hello.o -c hello.c cc -o hello hello.o scons: done building targets.
CH 2.2. Building Object Files
Object('hello.c')Objcet這個builder method用於告訴SCons如何從指定的source files中建立一個Object file
% scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... cc -o hello.o -c hello.c scons: done building targets.
2.4. Cleaning Up After a Build
在SCons清除(Cleaning Up)一個build只需要在scons後面新增"-c"/"--clean"即可2.5. The SConstruct File
SConstruct之於SCons就等同於Makefile之於Make,而SConstruct是個Python Script,注意,SConstruct的順序並非SCons實際執行的順序 比如該SConstruct的內容與其執行結果分別為print("Calling Program('hello.c')") Program('hello.c') print("Calling Program('goodbye.c')") Program('goodbye.c') print("Finished calling Program()")hello.c先被呼叫,而後才是goodbye.c
% scons scons: Reading SConscript files ... Calling Program('hello.c') Calling Program('goodbye.c') Finished calling Program() scons: done reading SConscript files. scons: Building targets ... cc -o goodbye.o -c goodbye.c cc -o goodbye goodbye.o cc -o hello.o -c hello.c cc -o hello hello.o scons: done building targets.goodbye先被建置,而後才是hello
2.6. Making the SCons Output Less Verbose
參數"-Q"可以讓SCons輸出較少的建置訊息brook@vista:~$ scons -Q gcc -o hello.o -c hello.c brook@vista:~$ scons -c scons: Reading SConscript files ... scons: done reading SConscript files. scons: Cleaning targets ... Removed hello.o scons: done cleaning targets. brook@vista:~$ scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... gcc -o hello.o -c hello.c scons: done building targets.
-
參考資料:
- SCons 3.0.1 User Guide