2012-01-03 2 views
2

У меня есть проект C/C++, составленный с помощью gcc и использующий cmake 2.8+. Я знаю, cmake поддерживает теги OPTION(XXX "Description..." ON/OFF). Я хотел бы, чтобы эти параметры сборки каким-то образом возникали в -DXXX аргументах времени компиляции, переданных в gcc. Как сделать это наиболее элегантно?Параметры CMAKE для аргументов компилятора -DXXX

ответ

5

Если вы заботитесь только о добавлении -D флаги компилятора, то команда, которую вы хотите,

add_definitions()

Вы можете обернуть, что в случае() блок должен быть включен с соответствующей опцией():

option(MY_FUNCTIONALITY "Cool functionality" ON) 

if(MY_FUNCTIONALITY) 
    add_definitions(-DENABLE_MY_FUNCTIONALITY) 
endif() 
+0

Не должно быть 'endif (MY_FUNCTIONALITY)'? –

+0

Это был требуемый синтаксис, однако теперь это необязательная вещь. Стилистически я не уверен, что предпочтительнее. – alanxz

+0

Оставляя закрытие команд пустым (как и ответ), безусловно, является предпочтительным стилем в современном CMake. СУХОЙ и все такое. – Angew

Смежные вопросы