Spec-Zone.ru › CMake 3.28

CheckSymbolExists

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

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

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

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

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

CMAKE_REQUIRED_FLAGS

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

CMAKE_REQUIRED_DEFINITIONS

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

CMAKE_REQUIRED_INCLUDES

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

CMAKE_REQUIRED_LINK_OPTIONS

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

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

CMAKE_REQUIRED_LIBRARIES

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

CMAKE_REQUIRED_QUIET

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

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

Например:

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.27/module/CheckSymbolExists.html

Spec-Zone.ru

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