Установить необязательное свойство для цели - PullRequest
1 голос
/ 31 октября 2019

Можно ли установить необязательное свойство для цели? (со значением по умолчанию или без него)

Рассмотрим этот пример:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...