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 -
Добавлен в версии 3.14: список опций для добавления в команду линковки, разделённых точкой с запятой.
-
CMAKE_REQUIRED_LIBRARIES -
список библиотек для добавления в команду линковки, разделённых точкой с запятой. См. политику
CMP0075. -
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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/module/CheckSymbolExists.html