cmake_instrumentation

添加于版本 4.0。

注意

仅当通过 CMAKE_EXPERIMENTAL_INSTRUMENTATION 门控启用对 instrumentation 的实验性支持时,此命令才可用。

允许与 CMake Instrumentation API 交互。

这允许在项目级别配置 instrumentation。

cmake_instrumentation(
  API_VERSION <version>
  DATA_VERSION <version>
  [HOOKS <hooks>...]
  [QUERIES <queries>...]
  [CALLBACK <callback>]
)

必须始终提供 API_VERSIONDATA_VERSION。目前,这两个字段唯一支持的值是 1。有关 API_VERSION 的详细信息,请参阅 API v1,有关 DATA_VERSION 的详细信息,请参阅 Data v1

可选关键字 HOOKSQUERIESCALLBACK 中的每一个都对应于 v1 Query Files 的一个参数。CALLBACK 关键字可以多次提供以创建多个回调。

每当调用 cmake_instrumentation 时,都会在 <build>/.cmake/instrumentation/v1/query/generated 中生成一个查询文件,以使用提供的参数启用 instrumentation。

示例

以下示例显示了命令的调用及其等效的 JSON 查询文件。

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"
  ]
}