diff options
Diffstat (limited to 'Source/cmVisualStudioSlnData.h')
-rw-r--r-- | Source/cmVisualStudioSlnData.h | 23 |
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; }; |