| title |
CMake |
| category |
Ubuntu |
| layout |
2017/sheet |
| tags |
|
| updated |
2023-01-04 |
| weight |
-10 |
| intro |
CMake |
find_package(pkg_name)の結果はpkg_name_FOUNDに出力されるのを利用する。
REQUIRED指定すると見つからなかった場合、ビルドエラーになっていしまうので注意
find_package(Boost)
if( Boost_FOUND )
# do something
endif()
- 名前をつけた引数は
${引数名}の形で関数内参照可能
- ↑からはみ出た引数は
${ARGN}にセミコロン区切りで詰め込まれる
function(関数名 引数名1 引数名2)
message("ARG1 = ${引数名1}")
message("ARG2 = ${引数名2}")
message("ARGN = ${ARGN}")
endfunction()
cmake_parse_arguments(
MYFUNC # 変数のプレフィックス
"BOOL_VAR" # 真偽値をとる変数の名前
"VAR1;VAR2" # 値を1つだけとる変数の名前
"MULTIPLE_OUTPUT" # 値を複数とる変数の名前
${ARGN} # パース元
)
- 変数はセミコロン区切りで複数指定可能
- CMakeには名前空間がないのでプレフィックスをつけることで名前の衝突を回避
- パースされなかったものは
PREFIX_UNPARSED_ARGUMENTSに詰められる