From 66be34853ce0046c132a5713d41e5c3608612bbf Mon Sep 17 00:00:00 2001 From: scheffle Date: Fri, 7 May 2021 15:28:29 +0200 Subject: cmake: add supported platforms to cmake -E capabilties report --- Help/manual/cmake.1.rst | 6 ++++++ Help/release/dev/capabilties-generator-platforms.rst | 6 ++++++ Source/cmake.cxx | 7 +++++++ 3 files changed, 19 insertions(+) create mode 100644 Help/release/dev/capabilties-generator-platforms.rst diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index f416f86..55e01e1 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -575,6 +575,12 @@ Available commands are: ``true`` if the generator supports toolsets and ``false`` otherwise. ``platformSupport`` ``true`` if the generator supports platforms and ``false`` otherwise. + ``supportedPlatforms`` + .. versionadded:: 3.21 + + Optional member that may be present when the generator supports + platform specification via :variable:`CMAKE_GENERATOR_PLATFORM` + (``-A ...``). The value is a list of platforms known to be supported. ``extraGenerators`` A list of strings with all the extra generators compatible with the generator. diff --git a/Help/release/dev/capabilties-generator-platforms.rst b/Help/release/dev/capabilties-generator-platforms.rst new file mode 100644 index 0000000..5de2b67 --- /dev/null +++ b/Help/release/dev/capabilties-generator-platforms.rst @@ -0,0 +1,6 @@ +capabilties-generator-platforms +------------------------------- + +* The :manual:`cmake(1)` ``-E capabilities`` output now contains for each + generator a ``supportedPlatforms`` field listing platform known to + be supported in :variable:`CMAKE_GENERATOR_PLATFORM`. diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 4130f5f..0eede0a 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -259,6 +259,13 @@ Json::Value cmake::ReportCapabilitiesJson() const gen["name"] = gi.name; gen["toolsetSupport"] = gi.supportsToolset; gen["platformSupport"] = gi.supportsPlatform; + if (!gi.supportedPlatforms.empty()) { + Json::Value supportedPlatforms = Json::arrayValue; + for (std::string const& platform : gi.supportedPlatforms) { + supportedPlatforms.append(platform); + } + gen["supportedPlatforms"] = std::move(supportedPlatforms); + } gen["extraGenerators"] = Json::arrayValue; generatorMap[gi.name] = gen; } else { -- cgit v0.12