cmVisualStudioWCEPlatformParser.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmVisualStudioWCEPlatformParser_h
  4. #define cmVisualStudioWCEPlatformParser_h
  5. #include "cmConfigure.h" // IWYU pragma: keep
  6. #include <map>
  7. #include <stddef.h>
  8. #include <string>
  9. #include <vector>
  10. #include "cmXMLParser.h"
  11. // This class is used to parse XML with configuration
  12. // of installed SDKs in system
  13. class cmVisualStudioWCEPlatformParser : public cmXMLParser
  14. {
  15. public:
  16. cmVisualStudioWCEPlatformParser(const char* name = NULL)
  17. : RequiredName(name)
  18. , FoundRequiredName(false)
  19. {
  20. }
  21. int ParseVersion(const char* version);
  22. bool Found() const { return this->FoundRequiredName; }
  23. const char* GetArchitectureFamily() const;
  24. std::string GetOSVersion() const;
  25. std::string GetIncludeDirectories() const
  26. {
  27. return this->FixPaths(this->Include);
  28. }
  29. std::string GetLibraryDirectories() const
  30. {
  31. return this->FixPaths(this->Library);
  32. }
  33. std::string GetPathDirectories() const { return this->FixPaths(this->Path); }
  34. const std::vector<std::string>& GetAvailablePlatforms() const
  35. {
  36. return this->AvailablePlatforms;
  37. }
  38. protected:
  39. virtual void StartElement(const std::string& name, const char** attributes);
  40. void EndElement(const std::string& name);
  41. void CharacterDataHandler(const char* data, int length);
  42. private:
  43. std::string FixPaths(const std::string& paths) const;
  44. std::string CharacterData;
  45. std::string Include;
  46. std::string Library;
  47. std::string Path;
  48. std::string PlatformName;
  49. std::string OSMajorVersion;
  50. std::string OSMinorVersion;
  51. std::map<std::string, std::string> Macros;
  52. std::vector<std::string> AvailablePlatforms;
  53. const char* RequiredName;
  54. bool FoundRequiredName;
  55. std::string VcInstallDir;
  56. std::string VsInstallDir;
  57. };
  58. #endif