是否可以为目标设置可选属性? (有或没有默认值)
考虑以下示例:
add_executable(main main.cpp)
set_target_properties(main PROPERTIES COMPILE_FLAGS "-DMY_FLAG=1")
运行cmake之后,我可以运行make main
,并且宏MY_FLAG
将设置为1
。
但是我希望能够使用make
或类似方法来运行make main -DMY_FLAG=5
时设置宏的值。
为进一步说明: 编写Makefile时,我可以做类似的事情
main: main.cpp
ifdef my_flag
g++ main.cpp -o main -DMY_FLAG=$(my_flag)
else
g++ main.cpp -o main -DMY_FLAG=1
endif
,然后运行make main
或make main my_flag=5
,宏将被设置为默认值1
或5
。
我想通过cmake达到类似的结果。