以下是奇怪的!Cmake ARGV和宏BUG?
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」) WORKS!
但
foo("gaga" false)
(應該給 「ELSE」,因爲第二個可選的參數是假的!)
結果錯誤:
cmake:126 (if):
given arguments: "NOT" "false" "AND"
Unknown arguments specified
這是一個錯誤?
以下工作:
if(NOT "${ARGV1}" AND "${ARGV2}")
message("IF")
else()
message("ELSE")
endif()
爲什麼???
感謝您的幫助!
(帶功能它的工作原理)