CheckSymbolExists
Предоставляет макрос для проверки наличия символа в виде функции, переменной или макроса в C.
-
check_symbol_exists -
check_symbol_exists(<symbol> <files> <variable>)
Проверяет, что
<symbol>доступен после включения заданного заголовка<files>и сохраняет результат в<variable>. Укажите список файлов в одном аргументе в виде списка, разделённого точкой с запятой.<variable>будет создан в качестве внутренней переменной кэша.
Если файлы заголовков определяют символ как макрос, он считается доступным и предполагается, что он будет работать. Если файлы заголовков объявляют символ как функцию или переменную, то символ также должен быть доступен для линковки (так что встроенные функции могут не быть обнаружены). Если символ является типом, значением перечисления или встроенной функцией, он не будет распознан (рассмотрите использование CheckTypeSize или CheckSourceCompiles). Если проверка должна быть выполнена в 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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/CheckSymbolExists.html