| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- cmake_instrumentation
- ---------------------
- .. versionadded:: 4.0
- Enables interacting with the
- :manual:`CMake Instrumentation API <cmake-instrumentation(7)>`.
- This allows for configuring instrumentation at the project-level.
- .. code-block:: cmake
- cmake_instrumentation(
- API_VERSION <version>
- DATA_VERSION <version>
- [HOOKS <hooks>...]
- [QUERIES <queries>...]
- [CALLBACK <callback>]
- )
- The ``API_VERSION`` and ``DATA_VERSION`` must always be given. Currently, the
- only supported value for both fields is 1. See :ref:`cmake-instrumentation API v1`
- for details of the ``API_VERSION`` and :ref:`cmake-instrumentation Data v1` for details
- of the ``DATA_VERSION``.
- Each of the optional keywords ``HOOKS``, ``QUERIES``, and ``CALLBACK``
- correspond to one of the parameters to the :ref:`cmake-instrumentation v1 Query Files`.
- The ``CALLBACK`` keyword can be provided multiple times to create multiple callbacks.
- Whenever ``cmake_instrumentation`` is invoked, a query file is generated in
- ``<build>/.cmake/instrumentation/v1/query/generated`` to enable instrumentation
- with the provided arguments.
- Example
- ^^^^^^^
- The following example shows an invocation of the command and its
- equivalent JSON query file.
- .. code-block:: cmake
- cmake_instrumentation(
- API_VERSION 1
- DATA_VERSION 1
- HOOKS postGenerate preCMakeBuild postCMakeBuild
- QUERIES staticSystemInformation dynamicSystemInformation
- CALLBACK ${CMAKE_COMMAND} -P /path/to/handle_data.cmake
- CALLBACK ${CMAKE_COMMAND} -P /path/to/handle_data_2.cmake
- )
- .. code-block:: json
- {
- "version": 1,
- "hooks": [
- "postGenerate", "preCMakeBuild", "postCMakeBuild"
- ],
- "queries": [
- "staticSystemInformation", "dynamicSystemInformation"
- ],
- "callbacks": [
- "/path/to/cmake -P /path/to/handle_data.cmake"
- "/path/to/cmake -P /path/to/handle_data_2.cmake"
- ]
- }
|