Компилировать один и тот же файл с разными флагами, используя CMAKE - PullRequest
19 голосов
/ 21 октября 2011

Я хочу скомпилировать один и тот же исходный файл .cpp в два разных целевых исполняемых файла, и я использую cmake.Один будет иметь некоторый код инструментария, а другой - нет.Таким образом, я могу сравнить накладные расходы на инструментарий.

У меня есть код инструментария, разделенный #ifdefs, поэтому я хочу определить значение, используя флаг -DЯ вижу, что это возможно с

add_definitions(-DINSTRUMENT)

Но похоже, что это применимо ко всем исполняемым файлам, созданным в этом каталоге.Мне интересно, есть ли хороший способ установить определение только для конкретной исполняемой цели.

1 Ответ

21 голосов
/ 21 октября 2011

Можно установить свойство COMPILE_DEFINITIONS одной из целей, чтобы иметь определения для конкретной цели:

set_target_properties (instrumented_target PROPERTIES COMPILE_DEFINITIONS "INSTRUMENT")

Обновление:

Начиная с CMake 2.8.11 вы также можете использовать target_compile_definitions для той же цели.

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