summaryrefslogtreecommitdiff
path: root/Modules/CheckTypeSize.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-02-18 11:33:06 -0500
committerBrad King <brad.king@kitware.com>2022-02-18 11:33:06 -0500
commit65e4d29e35a290ebeacb6cbbeefdb0d701eee87c (patch)
treef94e9b3912059bf2729c534467cd8a481478edd1 /Modules/CheckTypeSize.cmake
parenta1cb4485805337d4fc995621187d392047dad789 (diff)
downloadcmake-65e4d29e35a290ebeacb6cbbeefdb0d701eee87c.tar.gz
CheckTypeSize: Modernize and clarify documentation
Spell out the list of result variables as a definition list rather than in prose. Fixes: #23247
Diffstat (limited to 'Modules/CheckTypeSize.cmake')
-rw-r--r--Modules/CheckTypeSize.cmake65
1 files changed, 36 insertions, 29 deletions
diff --git a/Modules/CheckTypeSize.cmake b/Modules/CheckTypeSize.cmake
index 69f68f9d4a..602170c14f 100644
--- a/Modules/CheckTypeSize.cmake
+++ b/Modules/CheckTypeSize.cmake
@@ -7,46 +7,53 @@ CheckTypeSize
Check sizeof a type
-.. command:: CHECK_TYPE_SIZE
+.. command:: check_type_size
.. code-block:: cmake
- CHECK_TYPE_SIZE(TYPE VARIABLE [BUILTIN_TYPES_ONLY]
- [LANGUAGE <language>])
+ check_type_size(<type> <variable> [BUILTIN_TYPES_ONLY]
+ [LANGUAGE <language>])
- Check if the type exists and determine its size. On return,
- ``HAVE_${VARIABLE}`` holds the existence of the type, and ``${VARIABLE}``
- holds one of the following:
+ Check if the type exists and determine its size. Results are reported
+ in the following variables:
- ::
+ ``HAVE_<variable>``
+ Holds a true or false value indicating whether the type exists.
- <size> = type has non-zero size <size>
- "0" = type has arch-dependent size (see below)
- "" = type does not exist
+ ``<variable>``
+ Holds one of the following values:
- Both ``HAVE_${VARIABLE}`` and ``${VARIABLE}`` will be created as internal
- cache variables.
+ ``<size>``
+ Type has non-zero size ``<size>``.
- Furthermore, the variable ``${VARIABLE}_CODE`` holds C preprocessor code
- to define the macro ``${VARIABLE}`` to the size of the type, or leave
- the macro undefined if the type does not exist.
+ ``0``
+ Type has architecture-dependent size. This may occur when
+ :variable:`CMAKE_OSX_ARCHITECTURES` has multiple architectures.
+ In this case ``<variable>_CODE`` contains C preprocessor tests
+ mapping from each architecture macro to the corresponding type size.
+ The list of architecture macros is stored in ``<variable>_KEYS``,
+ and the value for each key is stored in ``<variable>-<key>``.
- The variable ``${VARIABLE}`` may be ``0`` when
- :variable:`CMAKE_OSX_ARCHITECTURES` has multiple architectures for building
- OS X universal binaries. This indicates that the type size varies across
- architectures. In this case ``${VARIABLE}_CODE`` contains C preprocessor
- tests mapping from each architecture macro to the corresponding type size.
- The list of architecture macros is stored in ``${VARIABLE}_KEYS``, and the
- value for each key is stored in ``${VARIABLE}-${KEY}``.
+ "" (empty string)
+ Type does not exist.
- If the ``BUILTIN_TYPES_ONLY`` option is not given, the macro checks for
- headers ``<sys/types.h>``, ``<stdint.h>``, and ``<stddef.h>``, and saves
- results in ``HAVE_SYS_TYPES_H``, ``HAVE_STDINT_H``, and ``HAVE_STDDEF_H``.
- The type size check automatically includes the available headers, thus
- supporting checks of types defined in the headers.
+ ``<variable>_CODE``
+ Holds C preprocessor code to define the macro ``<variable>`` to the size
+ of the type, or to leave the macro undefined if the type does not exist.
- If ``LANGUAGE`` is set, the specified compiler will be used to perform the
- check. Acceptable values are ``C`` and ``CXX``.
+ The options are:
+
+ ``BUILTIN_TYPES_ONLY``
+
+ Support only compiler-builtin types. If *not* given, the macro checks
+ for headers ``<sys/types.h>``, ``<stdint.h>``, and ``<stddef.h>``, and
+ saves results in ``HAVE_SYS_TYPES_H``, ``HAVE_STDINT_H``, and
+ ``HAVE_STDDEF_H``. The type size check automatically includes the
+ available headers, thus supporting checks of types defined in the headers.
+
+ ``LANGUAGE <language>``
+ Use the ``<language>`` compiler to perform the check.
+ Acceptable values are ``C`` and ``CXX``.
Despite the name of the macro you may use it to check the size of more
complex expressions, too. To check e.g. for the size of a struct