cmake_instrumentation¶
Added in version 4.0.
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 data output content and location.
Each of the optional keywords HOOKS
, QUERIES
, and CALLBACK
correspond to one of the parameters to the v1 Query Files. Note that the
CALLBACK
keyword only accepts a single callback.
Whenever cmake_instrumentation
is invoked, a query file is generated in
<build>/.cmake/timing/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"
)
{
"version": 1,
"hooks": [
"postGenerate", "preCMakeBuild", "postCMakeBuild"
],
"queries": [
"staticSystemInformation", "dynamicSystemInformation"
],
"callbacks": [
"/path/to/cmake -P /path/to/handle_data.cmake"
]
}