Spec-Zone.ru › CMake 3.24

Проверка поддержки IPO

Новая в версии 3.9.

Проверьте, поддерживает ли компилятор межпроцедурную оптимизацию (IPO/LTO). Используйте это перед включением свойства целевого объекта INTERPROCEDURAL_OPTIMIZATION.

check_ipo_supported
check_ipo_supported([RESULT <result>] [OUTPUT <output>]
                    [LANGUAGES <lang>...])

Варианты:

RESULT <result>

Установите переменную <result> в значение YES, если компилятор поддерживает IPO, и в значение NO, если нет. Если этот параметр не указан, команда выдаст ошибку, если IPO не поддерживается.

OUTPUT <output>

Установите переменную <output> со сведениями об ошибке.

LANGUAGES <lang>...

Укажите языки, компиляторы которых следует проверить. Поддерживаются языки C, CXX, и Fortran.

Использовать этот модуль бессмысленно, когда CMP0069 установлено в значение OLD, поэтому в этом случае модуль вернёт ошибку. Подробности см. в политике CMP0069.

Новая в версии 3.13: Добавлена поддержка генераторов Visual Studio.

Новая в версии 3.24: Проверка использует значения CMAKE_<LANG>_FLAGS и CMAKE_<LANG>_FLAGS_<CONFIG> вызывающего модуля. См. политику CMP0138.

Примеры

check_ipo_supported() # fatal error if IPO is not supported
set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
# Optional IPO. Do not use IPO if it's not supported by compiler.
check_ipo_supported(RESULT result OUTPUT output)
if(result)
  set_property(TARGET foo PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
else()
  message(WARNING "IPO is not supported: ${output}")
endif()

© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.24/module/CheckIPOSupported.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API