diff options
Diffstat (limited to 'Source/cmVisualStudioWCEPlatformParser.h')
-rw-r--r-- | Source/cmVisualStudioWCEPlatformParser.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Source/cmVisualStudioWCEPlatformParser.h b/Source/cmVisualStudioWCEPlatformParser.h new file mode 100644 index 0000000..c19691a --- /dev/null +++ b/Source/cmVisualStudioWCEPlatformParser.h @@ -0,0 +1,70 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmVisualStudioWCEPlatformParser_h +#define cmVisualStudioWCEPlatformParser_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include <map> +#include <stddef.h> +#include <string> +#include <vector> + +#include "cmXMLParser.h" + +// This class is used to parse XML with configuration +// of installed SDKs in system +class cmVisualStudioWCEPlatformParser : public cmXMLParser +{ +public: + cmVisualStudioWCEPlatformParser(const char* name = NULL) + : RequiredName(name) + , FoundRequiredName(false) + { + } + + int ParseVersion(const char* version); + + bool Found() const { return this->FoundRequiredName; } + const char* GetArchitectureFamily() const; + std::string GetOSVersion() const; + std::string GetIncludeDirectories() const + { + return this->FixPaths(this->Include); + } + std::string GetLibraryDirectories() const + { + return this->FixPaths(this->Library); + } + std::string GetPathDirectories() const { return this->FixPaths(this->Path); } + const std::vector<std::string>& GetAvailablePlatforms() const + { + return this->AvailablePlatforms; + } + +protected: + virtual void StartElement(const std::string& name, const char** attributes); + void EndElement(const std::string& name); + void CharacterDataHandler(const char* data, int length); + +private: + std::string FixPaths(const std::string& paths) const; + + std::string CharacterData; + + std::string Include; + std::string Library; + std::string Path; + std::string PlatformName; + std::string OSMajorVersion; + std::string OSMinorVersion; + std::map<std::string, std::string> Macros; + std::vector<std::string> AvailablePlatforms; + + const char* RequiredName; + bool FoundRequiredName; + std::string VcInstallDir; + std::string VsInstallDir; +}; + +#endif |