cmake_instrumentation¶
Added in version 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
CMake Instrumentation API.
This allows for configuring instrumentation at the project-level.
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 API v1
for details of the API_VERSION and 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 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.
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
)
{
"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"
]
}