Для CMake 3.1 или более поздней версии вы можете установить переменную CMAKE_CXX_STANDARD
на 11
:
Значение по умолчанию для свойства
CXX_STANDARD
целевых объектов.Эта переменная используется для инициализации свойства
blockquote>CXX_STANDARD
для всех целей.Стандарт C ++, чьи функции запрашиваются для создания этой цели.
Это свойство указывает стандарт C ++, чьи функции запрашиваются для создания этой цели. Для некоторых компиляторов это приводит к добавлению в строку компиляции флага типа
-std=gnu++11
.Поддерживаемые значения: 98, 11 и 14.
Если запрашиваемое значение не приводит к при добавлении флага компиляции для используемого компилятора вместо этого будет добавлен предыдущий стандартный флаг. Это означает, что использование:
set_property(TARGET tgt PROPERTY CXX_STANDARD 11)
с компилятором, который не поддерживает
-std=gnu++11
или эквивалентный флаг, не приведет к ошибке или предупреждению, но вместо этого добавит флаг-std=gnu++98
, если он поддерживается. Это поведение «распада» можно контролировать с помощью целевого свойстваCXX_STANDARD_REQUIRED
.См. Руководство cmake-compile-features (7) для получения информации на компилируемых функциях.
Это свойство инициализируется значением переменной
blockquote>CMAKE_CXX_STANDARD
, если оно задано при создании цели.