SConsで、「できる!test全ビルド」
SConsを使って、testを全ビルドします。boost/testを使ったテストの場合は、以下のような感じ。BOOST_PATH は適当に書き換えてね。
- ルート
- SConstruct ( 以下のファイル )
- include
- ???.h
- ???.h
- ???.h
- test
- ???.cpp
- ???.cpp
- ???.cpp
- build
以上のようなディレクトリ構成にして、ルートをカレントにしてScons とコマンドラインから打ち込みます。SConstruct は以下のようになります。
import os import glob BOOST_PATH = '/usr/prg/boost_1_31_0' cppFiles = glob.glob( os.path.join( 'test', '*.cpp' ) ) for f in cppFiles: cpp = Install( 'build', f ) Program( cpp, CPPPATH = [ os.path.join( 'include' ), BOOST_PATH ] )
glob と for を使って、ディレクトリ走査を自然に行えるのがポイント。ただ、悪い点(僕のSCons修行が足りない点)もあって、
- BuildDir というメソッドを使えばもっと楽に書けたはずなのに、どうもうまく動かなかった
- test のビルドだけでなく、実行、統計なども行いたい...でも、うまく行かなかった
などの問題点もありますが、SCons の日本語情報が少ないだけに少しでもお役に立てれば...と思い、一応あげます。