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