Spec-Zone.ru › CMake 3.31

CheckPIESupported

Добавлен в версии 3.14.

Проверьте, поддерживает ли компоновщик код с независимой позицией (PIE) или код без независимой позиции (NO_PIE) для исполняемых файлов. Используйте это, чтобы убедиться, что свойство целевого объекта POSITION_INDEPENDENT_CODE для исполняемых файлов будет учтено во время компоновки.

check_pie_supported
check_pie_supported([OUTPUT_VARIABLE <output>]
                    [LANGUAGES <lang>...])

Варианты:

OUTPUT_VARIABLE <output>

Установить переменную <output> с подробной информацией об ошибке. Если проверка была пропущена из-за использования кэшированных результатов предыдущего вызова, вывод будет пустым, даже если в предыдущем вызове были ошибки.

LANGUAGES <lang>...

Проверить компоновщики, используемые для каждого из указанных языков. Если этот параметр не указан, команда проверяет все включенные языки.

Поддерживаются C, CXX, Fortran.

Добавлен в версии 3.23: OBJC, OBJCXX, CUDA, и HIP поддерживаются.

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

Переменные

Для каждого проверенного языка определены две булевы переменные кэша.

CMAKE_<lang>_LINK_PIE_SUPPORTED

Устанавливается в значение true, если PIE поддерживается компоновщиком, и в значение false в противном случае.

CMAKE_<lang>_LINK_NO_PIE_SUPPORTED

Устанавливается в значение true, если NO_PIE поддерживается компоновщиком, и в значение false в противном случае.

Примеры

check_pie_supported()
set_property(TARGET foo PROPERTY POSITION_INDEPENDENT_CODE TRUE)
# Retrieve any error message.
check_pie_supported(OUTPUT_VARIABLE output LANGUAGES C)
set_property(TARGET foo PROPERTY POSITION_INDEPENDENT_CODE TRUE)
if(NOT CMAKE_C_LINK_PIE_SUPPORTED)
  message(WARNING "PIE is not supported at link time: ${output}.\n"
                  "PIE link options will not be passed to linker.")
endif()

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

Spec-Zone.ru

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