- 追加された行はこの色です。
- 削除された行はこの色です。
*Scons [#vc0528a6]
Pythonベースのビルドツール。
[[公式:http://www.scons.org/]]
[[Wikipedia:SCons:http://ja.wikipedia.org/wiki/SCons]]
----
#contents
**基本構文 [#mba781cc]
- 引数の取得
val = ARGUMENTS.get('val')
- 別のSConscriptを呼び出す
SConscript(<SConscript file>, build_dir=<出力パス>)
- 変数を外部SConscriptに渡す
Export('<変数名>')
- 変数を外部SConscriptから受け取る
Import('<変数名>')
**ビルドツールとしての構文 [#ob397618]
***環境 [#k8a00ea2]
- コンパイル環境用の変数
env = Environment()
- コンパイラ
env['CXX'] = 'g++'
- 環境パス
env['PATH'] = os.environ['PATH']
- ライブラリパス
# -L
env['LIBPATH'] = ['/usr/lib/']
- インクルードパス
# -I
env['CPPPATH'] = ['usr/include']
- リンクするライブラリ
# -l
env['LIBS'] = ['stdc++']
- ビルドオプション
env['CCFLAGS'] = ['-O2', '-Wall']
- リンクオプション
env['LINKFLAGS'] = ['-mno-cygwin']
- 定数定義
# -D
env['CPPDEFINES'] = ['NDEBUG']
***ビルド [#he075c65]
- スタティックライブラリ
# オブジェクト生成
object = []
for src in srcs:
obj = [build_dir + src.replace('.cpp', '.obj')];
object += env.StaticObject(obj, src)
# ライブラリ生成
env.StaticLibrary(output_filename, object)
- 実行プログラム
# オブジェクト生成
object = []
for src in srcs:
obj = build_dir + src.replace('.cpp', '.o');
object += env.Object(obj, src)
# 実行プログラム生成
env.Program(output_filename, object)