![]() |
ビルドターゲットを識別するため、「プロジェクトID//ターゲット名」という形式の文字列を用いる。
ターゲットID | 意味 |
---|---|
/boost | boostプロジェクト(サブプロジェクトを含まない)のターゲット全て |
hello | 現在のプロジェクトのhelloターゲット |
/boost/filesystem//boost_filesystem | boost/filesystemプロジェクトのboost_filesystemターゲット |
通常、ビルドターゲットを宣言するルールは次の共通構文の形式を取る。
rule ルール名 (
main-target-name :
sources + :
requirements * :
default-build * :
usage-requirements * )
引数の意味は次の通り。
引数 | 意味 |
---|---|
main-target-name | ターゲット名 |
sources | ソースファイル名、ソースターゲット名 |
requirements | ビルドに必要なプロパティ |
default-build | コマンドラインや依存するターゲットのdefault-buildでの指定がない場合のみ使用されるプロパティ |
usage-requirements | このターゲットに依存するターゲットのビルドに必要なプロパティ |
標準ルールexeは、実行ファイルターゲットを宣言するルールであり、共通構文の形式を取る。
# hello.cppから実行ファイルhelloを生成させる exe hello : hello.cpp ; # my_ls.cppとBoost.FileSystemのライブラリから実行ファイルmy_lsを生成させる exe my_ls : my_ls.cpp /boost/filesystem//boost_filesystem ;
標準ルールlibは、ライブラリターゲットを宣言するルールであり、共通構文の形式を取る。
# hello.cppからライブラリhelloを生成させる lib hello : hello.cpp ; # 既定のライブラリパスから探索されるzという名前のライブラリを参照する lib z : : <name>z ; # /usr/local/libから探索されるbzipという名前のライブラリを参照する lib bzip : : <name>bzip <search>/usr/local/lib ; # /usr/local/lib/foo.aをライブラリとして参照する lib foo : : <file>/usr/local/lib/foo.a ;
標準ルールaliasは、ターゲットの別名を宣言するルールであり、共通構文の形式を取る。
# ターゲットaとbを参照するターゲットa&bを宣言する alias a&b : a b ; # ヘッダのみのライブラリheadersを宣言する alias headers : : : : <include>$(BOOST_ROOT) ;