Scons

Pythonベースのビルドツール。
Wikipedia:SCons


基本構文

  • 引数の取得
    val = ARGUMENTS.get('val')
  • 別のSConscriptを呼び出す
    SConscript(<SConscript file>, build_dir=<出力パス>)
  • 変数を外部SConscriptに渡す
    Export('<変数名>')
  • 変数を外部SConscriptから受け取る
    Import('<変数名>')

ビルドツールとしての構文

環境

  • コンパイル環境用の変数
    env = Environment()
  • コンパイラ
    env['CXX'] = 'g++'
  • 環境パス
    env['PATH'] = os.environ['PATH']
  • ライブラリパス
    env['LIBPATH'] = ['/usr/lib/']
  • インクルードパス
    env['CPPPATH'] = ['usr/include']
  • リンクするライブラリ
    env['LIBS'] = ['stdc++']
  • ビルドオプション
    env['CCFLAGS'] = ['-O2', '-Wall']
  • リンクオプション
    env['LINKFLAGS'] = ['-mno-cygwin']
  • 定数定義
    env['CPPDEFINES'] = ['NDEBUG']

ビルド

  • スタティックライブラリ
    # オブジェクト生成
    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)

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS