1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

VS: Set Visual Studio versions read out from solution file

This commit is contained in:
Florian Schweiger
2022-02-07 13:07:40 +01:00
parent f7791698cb
commit 309191052c
2 changed files with 24 additions and 2 deletions

View File

@@ -31,6 +31,22 @@ private:
class cmSlnData
{
public:
std::string GetVisualStudioVersion() const { return visualStudioVersion; }
void SetVisualStudioVersion(const std::string& version)
{
visualStudioVersion = version;
}
std::string GetMinimumVisualStudioVersion() const
{
return minimumVisualStudioVersion;
}
void SetMinimumVisualStudioVersion(const std::string& version)
{
minimumVisualStudioVersion = version;
}
const cmSlnProjectEntry* GetProjectByGUID(
const std::string& projectGUID) const;
@@ -44,6 +60,7 @@ public:
const std::string& projectRelativePath);
private:
std::string visualStudioVersion, minimumVisualStudioVersion;
using ProjectStorage = std::map<std::string, cmSlnProjectEntry>;
ProjectStorage ProjectsByGUID;
using ProjectStringIndex = std::map<std::string, ProjectStorage::iterator>;

View File

@@ -219,9 +219,14 @@ bool cmVisualStudioSlnParser::State::Process(
this->Stack.push(FileStateProject);
} else
this->IgnoreUntilTag("EndProject");
} else if (line.GetTag().compare("Global") == 0)
} else if (line.GetTag().compare("Global") == 0) {
this->Stack.push(FileStateGlobal);
else {
} else if (line.GetTag().compare("VisualStudioVersion") == 0) {
output.SetVisualStudioVersion(line.GetValue(0));
} else if (line.GetTag().compare("MinimumVisualStudioVersion") == 0) {
output.SetMinimumVisualStudioVersion(line.GetValue(0));
} else {
result.SetError(ResultErrorInputStructure, this->GetCurrentLine());
return false;
}