12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmOSXBundleGenerator_h
- #define cmOSXBundleGenerator_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <set>
- #include <string>
- #include <vector>
- class cmGeneratorTarget;
- class cmLocalGenerator;
- class cmMakefile;
- class cmSourceFile;
- class cmOSXBundleGenerator
- {
- public:
- cmOSXBundleGenerator(cmGeneratorTarget* target,
- const std::string& configName);
- // create an app bundle at a given root, and return
- // the directory within the bundle that contains the executable
- void CreateAppBundle(const std::string& targetName, std::string& root);
- // create a framework at a given root
- void CreateFramework(const std::string& targetName, const std::string& root);
- // create a cf bundle at a given root
- void CreateCFBundle(const std::string& targetName, const std::string& root);
- struct MacOSXContentGeneratorType
- {
- virtual ~MacOSXContentGeneratorType() {}
- virtual void operator()(cmSourceFile const& source,
- const char* pkgloc) = 0;
- };
- void GenerateMacOSXContentStatements(
- std::vector<cmSourceFile const*> const& sources,
- MacOSXContentGeneratorType* generator);
- std::string InitMacOSXContentDirectory(const char* pkgloc);
- void SetMacContentFolders(std::set<std::string>* macContentFolders)
- {
- this->MacContentFolders = macContentFolders;
- }
- private:
- bool MustSkip();
- private:
- cmGeneratorTarget* GT;
- cmMakefile* Makefile;
- cmLocalGenerator* LocalGenerator;
- std::string ConfigName;
- std::set<std::string>* MacContentFolders;
- };
- #endif
|