71 lines
2.0 KiB
ReStructuredText
71 lines
2.0 KiB
ReStructuredText
cmake_instrumentation
|
|
---------------------
|
|
|
|
.. versionadded:: 4.0
|
|
|
|
.. note::
|
|
|
|
This command is only available when experimental support for instrumentation
|
|
has been enabled by the ``CMAKE_EXPERIMENTAL_INSTRUMENTATION`` gate.
|
|
|
|
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"
|
|
]
|
|
}
|