cmake -E capabilities: Tell whether TLS is enabled

Fixes: #20507
This commit is contained in:
Kyle Edwards 2022-08-18 16:25:46 -04:00
parent 36d35d4eb1
commit d0bb3286f0
4 changed files with 15 additions and 1 deletions

View File

@ -773,6 +773,11 @@ Available commands are:
``true`` if cmake supports server-mode and ``false`` otherwise.
Always false since CMake 3.20.
``tls``
.. versionadded:: 3.25
``true`` if TLS support is enabled and ``false`` otherwise.
.. option:: cat [--] <files>...
.. versionadded:: 3.18

View File

@ -0,0 +1,5 @@
E-capabilities-tls
------------------
* The :manual:`cmake -E capabilities <cmake(1)>` command gained a new ``tls``
field that tells whether or not TLS is enabled.

View File

@ -63,6 +63,7 @@
#if !defined(CMAKE_BOOTSTRAP)
# include <unordered_map>
# include <cm3p/curl/curl.h>
# include <cm3p/json/writer.h>
# include "cmFileAPI.h"
@ -252,6 +253,8 @@ Json::Value cmake::ReportCapabilitiesJson() const
std::vector<cmake::GeneratorInfo> generatorInfoList;
this->GetRegisteredGenerators(generatorInfoList);
auto* curlVersion = curl_version_info(CURLVERSION_FIRST);
JsonValueMapType generatorMap;
for (cmake::GeneratorInfo const& gi : generatorInfoList) {
if (gi.isAlias) { // skip aliases, they are there for compatibility reasons
@ -286,6 +289,7 @@ Json::Value cmake::ReportCapabilitiesJson() const
obj["generators"] = generators;
obj["fileApi"] = cmFileAPI::ReportCapabilities();
obj["serverMode"] = false;
obj["tls"] = static_cast<bool>(curlVersion->features & CURL_VERSION_SSL);
return obj;
}

View File

@ -1 +1 @@
^{"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":4}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":0}]},{"kind":"toolchains","version":\[{"major":1,"minor":0}]}]},"generators":\[.*\],"serverMode":false,"version":{.*}}$
^{"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":4}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":0}]},{"kind":"toolchains","version":\[{"major":1,"minor":0}]}]},"generators":\[.*\],"serverMode":false,"tls":(true|false),"version":{.*}}$