summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudioSlnData.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmVisualStudioSlnData.h')
-rw-r--r--Source/cmVisualStudioSlnData.h23
1 files changed, 21 insertions, 2 deletions
diff --git a/Source/cmVisualStudioSlnData.h b/Source/cmVisualStudioSlnData.h
index 19e58f5..100dd9b 100644
--- a/Source/cmVisualStudioSlnData.h
+++ b/Source/cmVisualStudioSlnData.h
@@ -8,6 +8,8 @@
#include <string>
#include <vector>
+#include <cm/optional>
+
class cmSlnProjectEntry
{
public:
@@ -24,8 +26,15 @@ public:
std::string GetName() const { return Name; }
std::string GetRelativePath() const { return RelativePath; }
+ void AddProjectConfiguration(const std::string& solutionConfiguration,
+ const std::string& projectConfiguration);
+
+ std::string GetProjectConfiguration(
+ const std::string& solutionConfiguration);
+
private:
std::string Guid, Name, RelativePath;
+ std::map<std::string, std::string> projectConfigurationMap;
};
class cmSlnData
@@ -47,10 +56,10 @@ public:
minimumVisualStudioVersion = version;
}
- const cmSlnProjectEntry* GetProjectByGUID(
+ const cm::optional<cmSlnProjectEntry> GetProjectByGUID(
const std::string& projectGUID) const;
- const cmSlnProjectEntry* GetProjectByName(
+ const cm::optional<cmSlnProjectEntry> GetProjectByName(
const std::string& projectName) const;
std::vector<cmSlnProjectEntry> GetProjects() const;
@@ -59,10 +68,20 @@ public:
const std::string& projectName,
const std::string& projectRelativePath);
+ void AddConfiguration(const std::string& configuration)
+ {
+ solutionConfigurations.push_back(configuration);
+ }
+
+ std::string GetConfigurationTarget(const std::string& projectName,
+ const std::string& solutionConfiguration,
+ const std::string& platformName);
+
private:
std::string visualStudioVersion, minimumVisualStudioVersion;
using ProjectStorage = std::map<std::string, cmSlnProjectEntry>;
ProjectStorage ProjectsByGUID;
using ProjectStringIndex = std::map<std::string, ProjectStorage::iterator>;
ProjectStringIndex ProjectNameIndex;
+ std::vector<std::string> solutionConfigurations;
};