scons

make / Makefile の役割を置き換えるべく開発されたらしいビルド管理ツール。Python で開発されている。オープンソースで MIT ライセンス。

2011年10月現在 SCons 2.1.0 が公開されている。

Windows

C:\Python27\Scripts に path を通す。

SharedLibrary

since 2011-10-15

nvda では env.SharedLibrary() で DLL をビルドしている。

http://www.scons.org/wiki/SconsTutorial2

Ubuntu で scons

since 2011-01-07

ruby における rake に相当するのは python では scons らしい。。

ubuntu 9.04 で apt-get install scons すると 1.2.0 というバージョンが入る。

rakefile に相当するのは SConstruct というファイル。

Mac で使う

since 2012-07-12

macports

$ sudo port install scons
$ which scons
/opt/local/bin/scons

マルチコア対応

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

scons 入門

カレントディレクトリに 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.
scons.txt · 最終更新: 2013/12/19 18:01 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0