在CMake中,我可以将没有值的变量作为参数传递,并检查是否提供了该变量吗?
cmake -DPAR1=123 -DPAR2
# CMakeLists.txt
if (PAR2)
message("PAR2 detected")
else()
message("PAR2 not detected")
endif()
使用此代码,我得到错误:
Parse error in command line argument: -DPAR2
Should be: VAR:type=value
CMake Error: No cmake script provided.
CMake Error: Problem processing arguments. Aborting.
答案 0 :(得分:1)
请注意,即使您设法以某种方式不传递任何内容(例如,传递一个空字符串),它也不会做您想要的事情,因为if(PAR2)
会得出错误的值。
如果要使用if(PAR2)
这样的条件,则必须给PAR2
一个真实的值,例如1
,Y
,ON
,或TRUE
:
cmake -DPAR1=123 -DPAR2=ON
答案 1 :(得分:1)