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