instrumentation: Add instrumentation version to cmake -E capabilities

This commit is contained in:
Martin Duffy
2026-09-22 08:39:58 -04:00
parent 509ac6160a
commit a2643a6db6
4 changed files with 27 additions and 1 deletions
+15
View File
@@ -1249,6 +1249,21 @@ Available commands are:
``major`` and ``minor`` members specifying non-negative integer
version components.
``instrumentation``
.. versionadded:: 4.5
A JSON object describing the supported :manual:`cmake-instrumentation(7)`
versions. Keys are:
``apiVersion``
The supported instrumentation API version as an integer.
See :ref:`cmake-instrumentation API v1`.
``dataVersion``
A JSON object containing ``major`` and ``minor`` integer members
specifying the latest supported instrumentation data version.
See :ref:`cmake-instrumentation Data Version`.
``serverMode``
``true`` if cmake supports server-mode and ``false`` otherwise.
Always false since CMake 3.20.
@@ -0,0 +1,6 @@
capabilities-instrumentation
----------------------------
* The :option:`cmake -E capabilities <cmake-E capabilities>` output now includes
an ``instrumentation`` object reporting the supported instrumentation API
version and the latest supported data version.
+5
View File
@@ -450,6 +450,11 @@ Json::Value cmake::ReportCapabilitiesJson() const
}
obj["generators"] = generators;
obj["fileApi"] = cmFileAPI::ReportCapabilities();
cmInstrumentationQuery::Version const dataVersion =
cmInstrumentationQuery::LatestDataVersion();
obj["instrumentation"]["apiVersion"] = 1;
obj["instrumentation"]["dataVersion"]["major"] = dataVersion.Major;
obj["instrumentation"]["dataVersion"]["minor"] = dataVersion.Minor;
obj["serverMode"] = false;
obj["tls"] = static_cast<bool>(curlVersion->features & CURL_VERSION_SSL);
# ifdef CMake_ENABLE_DEBUGGER
@@ -1 +1 @@
^{"debugger":(true|false),"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":12}]},{"kind":"configureLog","version":\[{"major":1,"minor":0}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":1}]},{"kind":"toolchains","version":\[{"major":1,"minor":1}]}]},"generators":\[.*\],"serverMode":false,"tls":(true|false),"version":{.*}}$
^{"debugger":(true|false),"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":12}]},{"kind":"configureLog","version":\[{"major":1,"minor":0}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":1}]},{"kind":"toolchains","version":\[{"major":1,"minor":1}]}]},"generators":\[.*\],"instrumentation":{"apiVersion":1,"dataVersion":{"major":1,"minor":2}},"serverMode":false,"tls":(true|false),"version":{.*}}$