FileAPI: Add "multiConfig" parameter to index file

This commit is contained in:
Kyle Edwards
2019-11-20 09:44:28 -05:00
parent 5f630a934a
commit 51c69fe5f8
4 changed files with 14 additions and 2 deletions

View File

@@ -199,6 +199,7 @@ The reply index file contains a JSON object:
"root": "/prefix/share/cmake-3.14"
},
"generator": {
"multiConfig": false,
"name": "Unix Makefiles"
}
},
@@ -267,6 +268,9 @@ The members are:
A JSON object describing the CMake generator used for the build.
It has members:
``multiConfig``
A boolean specifying whether the generator supports multiple output
configurations.
``name``
A string specifying the name of the generator.
``platform``

View File

@@ -0,0 +1,6 @@
fileapi-multi-config
--------------------
* The :manual:`file API <cmake-file-api(7)>` index file now emits a
``multiConfig`` flag specifying whether or not the generator supports
multiple output configurations.

View File

@@ -124,6 +124,7 @@ Json::Value cmGlobalGenerator::GetJson() const
{
Json::Value generator = Json::objectValue;
generator["name"] = this->GetName();
generator["multiConfig"] = this->IsMultiConfig();
return generator;
}
#endif

View File

@@ -109,10 +109,11 @@ def check_cmake_generator(g):
name = g.get("name", None)
assert is_string(name)
if name.startswith("Visual Studio"):
assert sorted(g.keys()) == ["name", "platform"]
assert sorted(g.keys()) == ["multiConfig", "name", "platform"]
assert is_string(g["platform"])
else:
assert sorted(g.keys()) == ["name"]
assert sorted(g.keys()) == ["multiConfig", "name"]
assert is_bool(g["multiConfig"], matches(name, "^(Visual Studio |Xcode$)"))
def check_index_object(indexEntry, kind, major, minor, check):
assert is_dict(indexEntry)