Учитывая код
int main(int argc, char** argv)
{
#ifdef MY_DEFINE
printf("HERE\n");
#else
printf("THERE\n");
#endif
}
Чтобы переключить поведение HERE
THERE
, мне нужно следующее в моем файле `CMakeLists.txt
IF (${MY_DEFINE} MATCHES 1) # I want to remove these lines
add_compile_options(-DMY_DEFINE)
ENDIF(${MY_DEFINE} MATCHES 1) # Up to here
Затем я могу
cmake -DMY_DEFINE=1
, чтобы получить HERE
cmake -DMY_DEFINE=0
, чтобы получить THERE
Все это кажется немного излишним ... Возможно ли удалить эти несколько строк вмой CMakeLists.txt и все еще сможет получить
HERE
с чем-то вроде cmake -DMY_DEFINE=1
THERE
с просто cmake
или cmake -DMY_DEFINE=0
?