Можно ли установить необязательное свойство для цели? (со значением по умолчанию или без него)
Рассмотрим этот пример:
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.