Проверка поддержки 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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/CheckIPOSupported.html