CheckTypeSize
Проверка размера типа
-
check_type_size -
check_type_size(<type> <variable> [BUILTIN_TYPES_ONLY] [LANGUAGE <language>])Проверяет существование типа и определяет его размер. Результаты сохраняются в следующих переменных:
-
HAVE_<variable> -
Содержит значение true или false, указывающее на существование типа.
-
<variable> -
Содержит одно из следующих значений:
-
<size> -
Тип имеет размер, отличный от нуля
<size>. -
0 -
Размер типа зависит от архитектуры. Это может произойти, когда
CMAKE_OSX_ARCHITECTURESсодержит несколько архитектур. В этом случае<variable>_CODEсодержит C препроцессорные тесты сопоставления каждого макроса архитектуры с соответствующим размером типа. Список макросов архитектуры хранится в<variable>_KEYS, а значение для каждого ключа хранится в<variable>-<key>. - "" (пустая строка)
-
Тип не существует.
-
-
<variable>_CODE -
Содержит C препроцессорный код для определения макроса
<variable>с размером типа или для оставления макроса неопределенным, если тип не существует.
Опции:
BUILTIN_TYPES_ONLYПоддерживает только встроенные типы компилятора. Если не задано, макрос проверяет заголовки
<sys/types.h>,<stdint.h>, и<stddef.h>, и сохраняет результаты вHAVE_SYS_TYPES_H,HAVE_STDINT_H, иHAVE_STDDEF_H. Проверка размера типа автоматически включает доступные заголовки, тем самым поддерживая проверки типов, определенных в заголовках.-
LANGUAGE <language> -
Используйте компилятор
<language>для выполнения проверки. Допустимые значения —CиCXX.
-
Несмотря на название макроса, вы можете использовать его для проверки размера более сложных выражений тоже. Например, для проверки размера члена структуры можно сделать так:
check_type_size("((struct something*)0)->member" SIZEOF_MEMBER)
Следующие переменные могут быть установлены до вызова этого макроса для изменения способа выполнения проверки:
-
CMAKE_REQUIRED_FLAGS -
строка флагов командной строки компиляции.
-
CMAKE_REQUIRED_DEFINITIONS -
список макросов для определения (-DFOO=bar).
-
CMAKE_REQUIRED_INCLUDES -
список каталогов включения.
-
CMAKE_REQUIRED_LINK_OPTIONS -
Добавлено в версии 3.14: список опций для передачи в команду компоновки.
-
CMAKE_REQUIRED_LIBRARIES -
список библиотек для компоновки.
-
CMAKE_REQUIRED_QUIET -
Добавлено в версии 3.1: выполнять тихо без сообщений.
-
CMAKE_EXTRA_INCLUDE_FILES -
список дополнительных заголовков для включения.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/CheckTypeSize.html