cmXCodeScheme.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 cmXCodeScheme_h
  4. #define cmXCodeScheme_h
  5. #include <cmConfigure.h> // IWYU pragma: keep
  6. #include "cmGlobalXCodeGenerator.h"
  7. #include "cmSystemTools.h"
  8. #include "cmXCodeObject.h"
  9. #include "cmXMLWriter.h"
  10. /** \class cmXCodeScheme
  11. * \brief Write shared schemes for native targets in Xcode project.
  12. */
  13. class cmXCodeScheme
  14. {
  15. public:
  16. cmXCodeScheme(cmXCodeObject* xcObj,
  17. const std::vector<std::string>& configList,
  18. unsigned int xcVersion);
  19. void WriteXCodeSharedScheme(const std::string& xcProjDir,
  20. const std::string sourceRoot);
  21. private:
  22. const std::string& TargetName;
  23. const std::string& TargetId;
  24. const std::vector<std::string>& ConfigList;
  25. const unsigned int XcodeVersion;
  26. void WriteXCodeXCScheme(std::ostream& fout, const std::string& xcProjDir);
  27. void WriteBuildAction(cmXMLWriter& xout, const std::string& xcProjDir);
  28. void WriteTestAction(cmXMLWriter& xout, std::string configuration);
  29. void WriteLaunchAction(cmXMLWriter& xout, std::string configuration,
  30. const std::string& xcProjDir);
  31. void WriteProfileAction(cmXMLWriter& xout, std::string configuration);
  32. void WriteAnalyzeAction(cmXMLWriter& xout, std::string configuration);
  33. void WriteArchiveAction(cmXMLWriter& xout, std::string configuration);
  34. std::string WriteVersionString();
  35. std::string FindConfiguration(const std::string& name);
  36. };
  37. #endif