Spec-Zone.ru › CMake 3.18

CheckSymbolExists

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

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

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

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

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

CMAKE_REQUIRED_FLAGS

строка флагов командной строки компилятора.

CMAKE_REQUIRED_DEFINITIONS

;-список макросов для определения (-DFOO=bar).

CMAKE_REQUIRED_INCLUDES

;-список путей поиска заголовочных файлов для передачи компилятору.

CMAKE_REQUIRED_LINK_OPTIONS

;-список опций для добавления в команду линковки.

CMAKE_REQUIRED_LIBRARIES

;-список библиотек для добавления в команду линковки. См. политику CMP0075.

CMAKE_REQUIRED_QUIET

выполнять тихо без сообщений.

Например:

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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/module/CheckSymbolExists.html

Spec-Zone.ru

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