Spec-Zone.ru › CMake 3.29

CheckSymbolExists

Предоставляет макрос для проверки наличия символа в качестве функции, переменной или макроса в C.

check_symbol_exists
check_symbol_exists(<symbol> <files> <variable>)

Проверяет, что <symbol> доступен после включения заданного заголовка <files> и сохраняет результат в <variable>. Укажите список файлов в одном аргументе как список, разделённый точкой с запятой. <variable> будет создан как внутренняя переменная кэша.

Если заголовочные файлы определяют символ как макрос, он считается доступным и предполагается работающим. Если заголовочные файлы объявляют символ как функцию или переменную, то символ также должен быть доступен для компоновки (поэтому встроенные функции могут не обнаруживаться). Если символ является типом, значением перечисления или встроенной функцией, он не будет распознан (рассмотрите использование CheckTypeSize или CheckSourceCompiles). Если проверка должна быть выполнена в C++, используйте CheckCXXSymbolExists вместо этого.

Следующие переменные могут быть установлены перед вызовом этого макроса для изменения способа выполнения проверки:

CMAKE_REQUIRED_FLAGS

Строка дополнительных флагов, которые необходимо передать компилятору. Строка должна быть разделена пробелами — ;-list не сработает. Содержимое CMAKE_<LANG>_FLAGS и его соответствующая переменная, специфичная для конфигурации, автоматически добавляются к команде компилятора перед содержимым CMAKE_REQUIRED_FLAGS.

CMAKE_REQUIRED_DEFINITIONS

;-list определений компилятора в формате -DFOO или -DFOO=bar. Определение для имени, указанного в <resultVar>, также будет добавлено автоматически.

CMAKE_REQUIRED_INCLUDES

;-list путей поиска заголовков, которые необходимо передать компилятору. Это будут единственные пути поиска заголовков, которые будут использованы — содержимое свойства каталога INCLUDE_DIRECTORIES будет проигнорировано.

CMAKE_REQUIRED_LINK_OPTIONS

Новое в версии 3.14.

;-list параметров, которые необходимо добавить к команде компоновки (см. try_compile() для получения дополнительных сведений).

CMAKE_REQUIRED_LIBRARIES

;-list библиотек, которые необходимо добавить к команде компоновки. Это могут быть имена системных библиотек или Импортированные целевые объекты (см. try_compile() для получения дополнительных сведений).

CMAKE_REQUIRED_QUIET

Новое в версии 3.1.

Если эта переменная вычисляется как булево значение true, все сообщения состояния, связанные с проверкой, будут подавлены.

Например:

include(CheckSymbolExists)

# Check for macro SEEK_SET
check_symbol_exists(SEEK_SET "stdio.h" HAVE_SEEK_SET)
# Check for function fopen
check_symbol_exists(fopen "stdio.h" HAVE_FOPEN)

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

Spec-Zone.ru

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