CheckStructHasMember
Проверка, содержит ли заданная структура или класс указанную переменную-член
-
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_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/v3.29/module/CheckStructHasMember.html