/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmXCodeScheme_h #define cmXCodeScheme_h #include // IWYU pragma: keep #include "cmGlobalXCodeGenerator.h" #include "cmSystemTools.h" #include "cmXCodeObject.h" #include "cmXMLWriter.h" /** \class cmXCodeScheme * \brief Write shared schemes for native targets in Xcode project. */ class cmXCodeScheme { public: cmXCodeScheme(cmXCodeObject* xcObj, const std::vector& configList, unsigned int xcVersion); void WriteXCodeSharedScheme(const std::string& xcProjDir, const std::string sourceRoot); private: const std::string& TargetName; const std::string& TargetId; const std::vector& ConfigList; const unsigned int XcodeVersion; void WriteXCodeXCScheme(std::ostream& fout, const std::string& xcProjDir); void WriteBuildAction(cmXMLWriter& xout, const std::string& xcProjDir); void WriteTestAction(cmXMLWriter& xout, std::string configuration); void WriteLaunchAction(cmXMLWriter& xout, std::string configuration, const std::string& xcProjDir); void WriteProfileAction(cmXMLWriter& xout, std::string configuration); void WriteAnalyzeAction(cmXMLWriter& xout, std::string configuration); void WriteArchiveAction(cmXMLWriter& xout, std::string configuration); std::string WriteVersionString(); std::string FindConfiguration(const std::string& name); }; #endif