cmake_instrumentation

4.0 版本新增。

注意

此命令仅在通过 CMAKE_EXPERIMENTAL_INSTRUMENTATION 门启用实验性插桩支持时可用。

启用与 CMake 插桩 API 的交互。

这允许在项目级别配置插桩。

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 查询文件的参数之一。CALLBACK 关键字可以多次提供以创建多个回调。

每当调用 cmake_instrumentation 时,将在 <build>/.cmake/instrumentation/v1/query/generated 中生成一个查询文件,以启用带有所提供参数的插桩。

示例

以下示例展示了命令的调用及其等效的 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"
  ]
}