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