Refactor: Prepare Ninja generator for multi-config

This commit is contained in:
Kyle Edwards
2019-11-14 11:38:35 -05:00
parent 4047056a54
commit 3bc63e99e4
23 changed files with 641 additions and 527 deletions

View File

@@ -17,29 +17,33 @@ class cmSourceFile;
class cmOSXBundleGenerator
{
public:
cmOSXBundleGenerator(cmGeneratorTarget* target, std::string configName);
cmOSXBundleGenerator(cmGeneratorTarget* target);
// 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);
void CreateAppBundle(const std::string& targetName, std::string& root,
const std::string& config);
// create a framework at a given root
void CreateFramework(const std::string& targetName, const std::string& root);
void CreateFramework(const std::string& targetName, const std::string& root,
const std::string& config);
// create a cf bundle at a given root
void CreateCFBundle(const std::string& targetName, const std::string& root);
void CreateCFBundle(const std::string& targetName, const std::string& root,
const std::string& config);
struct MacOSXContentGeneratorType
{
virtual ~MacOSXContentGeneratorType() = default;
virtual void operator()(cmSourceFile const& source,
const char* pkgloc) = 0;
virtual void operator()(cmSourceFile const& source, const char* pkgloc,
const std::string& config) = 0;
};
void GenerateMacOSXContentStatements(
std::vector<cmSourceFile const*> const& sources,
MacOSXContentGeneratorType* generator);
std::string InitMacOSXContentDirectory(const char* pkgloc);
MacOSXContentGeneratorType* generator, const std::string& config);
std::string InitMacOSXContentDirectory(const char* pkgloc,
const std::string& config);
void SetMacContentFolders(std::set<std::string>* macContentFolders)
{
@@ -53,7 +57,6 @@ private:
cmGeneratorTarget* GT;
cmMakefile* Makefile;
cmLocalGenerator* LocalGenerator;
std::string ConfigName;
std::set<std::string>* MacContentFolders;
};