summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudioWCEPlatformParser.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmVisualStudioWCEPlatformParser.h')
-rw-r--r--Source/cmVisualStudioWCEPlatformParser.h70
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