Проверка наличия члена структуры
Проверка наличия заданного члена переменной структуры или класса
-
CHECK_STRUCT_HAS_MEMBER -
CHECK_STRUCT_HAS_MEMBER(<struct> <member> <header> <variable> [LANGUAGE <language>])<struct> - the name of the struct or class you are interested in <member> - the member which existence you want to check <header> - the header(s) where the prototype should be declared <variable> - variable to store the result <language> - the compiler to use (C or CXX)
Перед вызовом этого макроса можно установить следующие переменные, чтобы изменить способ выполнения проверки:
-
CMAKE_REQUIRED_FLAGS -
Строка дополнительных флагов для передачи компилятору. Строка должна быть разделена пробелами — список с разделителем «;» не будет работать. Содержимое
CMAKE_<LANG>_FLAGSи его соответствующая переменная, специфичная для конфигурации, автоматически добавляются к команде компилятора перед содержимымCMAKE_REQUIRED_FLAGS.
-
CMAKE_REQUIRED_DEFINITIONS -
Список определений компилятора в формате
-DFOOили-DFOO=bar. Определение для имени, указанного в<resultVar>, также будет добавлено автоматически.
-
CMAKE_REQUIRED_INCLUDES -
Список путей поиска заголовочных файлов для передачи компилятору. Эти пути будут единственными используемыми путями поиска заголовочных файлов — содержимое свойства каталога
INCLUDE_DIRECTORIESбудет проигнорировано.
-
CMAKE_REQUIRED_LINK_OPTIONS -
Добавлено в версии 3.14.
Список опций для добавления к команде линковки (см.
try_compile()для получения дополнительных сведений).
-
CMAKE_REQUIRED_LIBRARIES -
Список библиотек для добавления к команде линковки. Это могут быть имена системных библиотек или Импортированные целевые объекты (см.
try_compile()для получения дополнительных сведений).
-
CMAKE_REQUIRED_LINK_DIRECTORIES -
Добавлено в версии 3.31.
Список путей поиска библиотек для передачи линковщику (см.
try_compile()для получения дополнительных сведений).
-
CMAKE_REQUIRED_QUIET -
Добавлено в версии 3.1.
Если эта переменная принимает булево значение «истина», все сообщения состояния, связанные с проверкой, будут подавлены.
Пример:
CHECK_STRUCT_HAS_MEMBER("struct timeval" tv_sec sys/select.h
HAVE_TIMEVAL_TV_SEC LANGUAGE C)
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/module/CheckStructHasMember.html