make / Makefile の役割を置き換えるべく開発されたらしいビルド管理ツール。Python で開発されている。オープンソースで MIT ライセンス。
2011年10月現在 SCons 2.1.0 が公開されている。
C:\Python27\Scripts に path を通す。
since 2011-10-15
nvda では env.SharedLibrary() で DLL をビルドしている。
since 2011-01-07
ruby における rake に相当するのは python では scons らしい。。
ubuntu 9.04 で apt-get install scons すると 1.2.0 というバージョンが入る。
rakefile に相当するのは SConstruct というファイル。
since 2012-09-30
nvdajp_scons にて -j2 をつけるとデュアルコアCPUを有効活用してくれる:
scons -j2 source
Intel i5 だと -j4 が有効。
scons -c に加えて .sconsign.dblite を消去すべき場合がある。
http://dcreager.net/2009/12/18/make-distclean-in-scons/
http://sourceforge.jp/ticket/browse.php?group_id=4221&tid=30210
カレントディレクトリに touch test.txt するだけの sconstruct ファイルを作ってみた:
env = Environment() env.Command('test.txt', None, [r"C:\msysgit\msysgit\bin\touch.exe test.txt"])
env.Command の第2引数はソースファイル。
これで scons -c するとファイルの消去もやってくれる。
## 1回目の実行 >scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... C:\msysgit\msysgit\bin\touch.exe test.txt scons: done building targets. ## もう一度やると touch を実行しない >scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... scons: `.' is up to date. scons: done building targets. ## 作ったファイルの消去 >scons -c scons: Reading SConscript files ... scons: done reading SConscript files. scons: Cleaning targets ... Removed test.txt scons: done cleaning targets.