2014-10-22 2 views
0

Я использую CMake 2.8.12.2 в проекте, и я заметил, что в зависимости от типа сборки он добавляет некоторые флагов в компилятор. В случае Выпуск тип сборки, он добавляет -O3 и -NDEBUG.CMake: флаги по умолчанию в зависимости от типа сборки

Дело в том, что, поскольку этот проект будет использоваться на разных платформах, где я не знаю, какую версию CMake они используют (выше, конечно, 2.8), и я хотел бы знать, есть ли какие-либо значения по умолчанию флаги для каждого типа сборки, или если эта функция зависит от версии CMake.

Я знаю, что могу добавить свои флаги к переменным CMAKE_CXX_FLAGS_*, но я хочу, чтобы компиляция была «чистой», добавив флаги только один раз и не переопределяя то, что уже сделано.

ответ

0

Это добавит «-Wall» флаги релиза

set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall") 
+0

Да, я знаю. Я спрашивал больше о флагах по умолчанию cmake добавляет компиляцию в зависимости от типа сборки. – Jcao02

+0

Узнайте, что такое по умолчанию, и перезапишите его самостоятельно и убедитесь, что у вас нет дубликатов. Если вы хотите большего контроля, вы можете использовать функцию string(), предоставленную cmake, но я обещаю, что это будет выглядеть очень грязно, и у вас не будет никакой помощи, потому что никто этого не делает. – ChrisWard1000

0

-O3 и -NDEBUG которые были использованы CMake в течение некоторого времени; так что вы не должны беспокоиться о них, поскольку на практике они не зависят от версии CMake.

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