Хорошей альтернативой было бы определение опции cmake:
OPTION(DEFINE_MACRO "Option description" ON) # Enabled by default
, сопровождаемой условием:
IF(DEFINE_MACRO)
ADD_DEFINITIONS(-DMACRO)
ENDIF(DEFINE_MACRO)
Затем вы можете включить / выключить эту опцию через командную строку с помощьюcmake используя флаг -D
.Пример:
cmake -DDEFINE_MACRO=OFF ..
Чтобы убедиться, что компилятор получает правильное определение, вы можете вызвать make в подробном режиме и проверить, определен макрос или нет:
make VERBOSE=1
ЭтоХорошее решение также потому, что make
перекомпилирует ваш код при изменении любого из параметров cmake.