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