次がおかしい!
macro(foo in1)
message("FIRST" ${in1})
message("OPtional1:" ${ARGV1})
message("OPtional2:" ${ARGV2})
if( NOT ${ARGV1} AND ${ARGV2} )
message("IF")
else()
message("ELSE")
endif()
endmacro()
以下を実行します。
foo("gaga" false true)
(「IF」を指定する必要があります) 動作します!
しかし
foo("gaga" false)
(オプションの 2 番目の引数が FALSE であるため、"ELSE" を指定する必要があります!)
エラーになります:
cmake:126 (if):
given arguments: "NOT" "false" "AND"
Unknown arguments specified
これはバグですか??
以下の作品:
if( NOT "${ARGV1}" AND "${ARGV2}" )
message("IF")
else()
message("ELSE")
endif()
どうして???
助けてくれてありがとう!
(関数で動作します)