Spec-Zone.ru › CMake 3.23

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API