cmWIXDirectoriesSourceWriter.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include <string>
  5. #include "cmCPackGenerator.h"
  6. #include "cmWIXSourceWriter.h"
  7. /** \class cmWIXDirectoriesSourceWriter
  8. * \brief Helper class to generate directories.wxs
  9. */
  10. class cmWIXDirectoriesSourceWriter : public cmWIXSourceWriter
  11. {
  12. public:
  13. cmWIXDirectoriesSourceWriter(unsigned long wixVersion, cmCPackLog* logger,
  14. std::string const& filename,
  15. GuidType componentGuidType);
  16. void EmitStartMenuFolder(std::string const& startMenuFolder);
  17. void EmitDesktopFolder();
  18. void EmitStartupFolder();
  19. struct InstallationPrefixDirectory
  20. {
  21. bool HasStandardDirectory = false;
  22. size_t Depth = 0;
  23. };
  24. InstallationPrefixDirectory BeginInstallationPrefixDirectory(
  25. std::string const& programFilesFolderId,
  26. std::string const& installRootString);
  27. void EndInstallationPrefixDirectory(
  28. InstallationPrefixDirectory installationPrefixDirectory);
  29. };