From d568eefe104e480706a2e6ceb16df4376d4becbf Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 25 Jul 2015 17:52:10 +0200 Subject: cmCustomCommandGenerator: Require cmLocalGenerator in API. --- Source/cmCustomCommandGenerator.cxx | 22 +++++++++++++--------- Source/cmCustomCommandGenerator.h | 6 +++--- Source/cmGeneratorTarget.cxx | 3 ++- Source/cmGlobalXCodeGenerator.cxx | 4 ++-- Source/cmLocalNinjaGenerator.cxx | 2 +- Source/cmLocalUnixMakefileGenerator3.cxx | 6 ++---- Source/cmLocalVisualStudio6Generator.cxx | 4 ++-- Source/cmLocalVisualStudio7Generator.cxx | 4 ++-- Source/cmMakefileTargetGenerator.cxx | 5 +++-- Source/cmNinjaNormalTargetGenerator.cxx | 2 +- Source/cmNinjaTargetGenerator.cxx | 2 +- Source/cmNinjaUtilityTargetGenerator.cxx | 4 ++-- Source/cmVisualStudio10TargetGenerator.cxx | 4 ++-- 13 files changed, 36 insertions(+), 32 deletions(-) diff --git a/Source/cmCustomCommandGenerator.cxx b/Source/cmCustomCommandGenerator.cxx index f654eb9..8483a91 100644 --- a/Source/cmCustomCommandGenerator.cxx +++ b/Source/cmCustomCommandGenerator.cxx @@ -12,14 +12,15 @@ #include "cmCustomCommandGenerator.h" #include "cmMakefile.h" +#include "cmLocalGenerator.h" #include "cmCustomCommand.h" #include "cmOutputConverter.h" #include "cmGeneratorExpression.h" //---------------------------------------------------------------------------- cmCustomCommandGenerator::cmCustomCommandGenerator( - cmCustomCommand const& cc, const std::string& config, cmMakefile* mf): - CC(cc), Config(config), Makefile(mf), + cmCustomCommand const& cc, const std::string& config, cmLocalGenerator* lg): + CC(cc), Config(config), LG(lg), OldStyle(cc.GetEscapeOldStyle()), MakeVars(cc.GetEscapeAllowMakeVars()), GE(new cmGeneratorExpression(cc.GetBacktrace())), DependsDone(false) { @@ -41,13 +42,15 @@ unsigned int cmCustomCommandGenerator::GetNumberOfCommands() const std::string cmCustomCommandGenerator::GetCommand(unsigned int c) const { std::string const& argv0 = this->CC.GetCommandLines()[c][0]; - cmTarget* target = this->Makefile->FindTargetToUse(argv0); + cmTarget* target = this->LG->GetMakefile()->FindTargetToUse(argv0); if(target && target->GetType() == cmTarget::EXECUTABLE && - (target->IsImported() || !this->Makefile->IsOn("CMAKE_CROSSCOMPILING"))) + (target->IsImported() + || !this->LG->GetMakefile()->IsOn("CMAKE_CROSSCOMPILING"))) { return target->GetLocation(this->Config); } - return this->GE->Parse(argv0)->Evaluate(this->Makefile, this->Config); + return this->GE->Parse(argv0)->Evaluate(this->LG->GetMakefile(), + this->Config); } //---------------------------------------------------------------------------- @@ -87,8 +90,9 @@ cmCustomCommandGenerator cmCustomCommandLine const& commandLine = this->CC.GetCommandLines()[c]; for(unsigned int j=1;j < commandLine.size(); ++j) { - std::string arg = this->GE->Parse(commandLine[j])->Evaluate(this->Makefile, - this->Config); + std::string arg = + this->GE->Parse(commandLine[j])->Evaluate(this->LG->GetMakefile(), + this->Config); cmd += " "; if(this->OldStyle) { @@ -96,7 +100,7 @@ cmCustomCommandGenerator } else { - cmOutputConverter converter(this->Makefile->GetStateSnapshot()); + cmOutputConverter converter(this->LG->GetMakefile()->GetStateSnapshot()); cmd += converter.EscapeForShell(arg, this->MakeVars); } } @@ -141,7 +145,7 @@ std::vector const& cmCustomCommandGenerator::GetDepends() const = this->GE->Parse(*i); std::vector result; cmSystemTools::ExpandListArgument( - cge->Evaluate(this->Makefile, this->Config), result); + cge->Evaluate(this->LG->GetMakefile(), this->Config), result); for (std::vector::iterator it = result.begin(); it != result.end(); ++it) { diff --git a/Source/cmCustomCommandGenerator.h b/Source/cmCustomCommandGenerator.h index 7ad95d1..a637fed 100644 --- a/Source/cmCustomCommandGenerator.h +++ b/Source/cmCustomCommandGenerator.h @@ -15,14 +15,14 @@ #include "cmStandardIncludes.h" class cmCustomCommand; -class cmMakefile; +class cmLocalGenerator; class cmGeneratorExpression; class cmCustomCommandGenerator { cmCustomCommand const& CC; std::string Config; - cmMakefile* Makefile; + cmLocalGenerator* LG; bool OldStyle; bool MakeVars; cmGeneratorExpression* GE; @@ -31,7 +31,7 @@ class cmCustomCommandGenerator public: cmCustomCommandGenerator(cmCustomCommand const& cc, const std::string& config, - cmMakefile* mf); + cmLocalGenerator* lg); ~cmCustomCommandGenerator(); cmCustomCommand const& GetCC() const { return this->CC; } unsigned int GetNumberOfCommands() const; diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index e6f7a43..dc5a2a1 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -938,7 +938,8 @@ void cmTargetTraceDependencies::FollowCommandDepends(cmCustomCommand const& cc, const std::string& config, std::set& emitted) { - cmCustomCommandGenerator ccg(cc, config, this->Makefile); + cmCustomCommandGenerator ccg(cc, config, + this->GeneratorTarget->LocalGenerator); const std::vector& depends = ccg.GetDepends(); diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 21075bb..6e46bc0 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1668,7 +1668,7 @@ void cmGlobalXCodeGenerator for(std::vector::const_iterator i = commands.begin(); i != commands.end(); ++i) { - cmCustomCommandGenerator ccg(*i, configName, this->CurrentMakefile); + cmCustomCommandGenerator ccg(*i, configName, this->CurrentLocalGenerator); if(ccg.GetNumberOfCommands() > 0) { const std::vector& outputs = ccg.GetOutputs(); @@ -1694,7 +1694,7 @@ void cmGlobalXCodeGenerator for(std::vector::const_iterator i = commands.begin(); i != commands.end(); ++i) { - cmCustomCommandGenerator ccg(*i, configName, this->CurrentMakefile); + cmCustomCommandGenerator ccg(*i, configName, this->CurrentLocalGenerator); if(ccg.GetNumberOfCommands() > 0) { makefileStream << "\n"; diff --git a/Source/cmLocalNinjaGenerator.cxx b/Source/cmLocalNinjaGenerator.cxx index a293d06..9889bd4 100644 --- a/Source/cmLocalNinjaGenerator.cxx +++ b/Source/cmLocalNinjaGenerator.cxx @@ -404,7 +404,7 @@ cmLocalNinjaGenerator::WriteCustomCommandBuildStatement( if (this->GetGlobalNinjaGenerator()->SeenCustomCommand(cc)) return; - cmCustomCommandGenerator ccg(*cc, this->GetConfigName(), this->Makefile); + cmCustomCommandGenerator ccg(*cc, this->GetConfigName(), this); const std::vector &outputs = ccg.GetOutputs(); const std::vector &byproducts = ccg.GetByproducts(); diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx index 077d4d9..de86c6b 100644 --- a/Source/cmLocalUnixMakefileGenerator3.cxx +++ b/Source/cmLocalUnixMakefileGenerator3.cxx @@ -1007,8 +1007,7 @@ cmLocalUnixMakefileGenerator3 for(std::vector::const_iterator i = ccs.begin(); i != ccs.end(); ++i) { - cmCustomCommandGenerator ccg(*i, this->ConfigName, - this->Makefile); + cmCustomCommandGenerator ccg(*i, this->ConfigName, this); this->AppendCustomDepend(depends, ccg); } } @@ -1043,8 +1042,7 @@ cmLocalUnixMakefileGenerator3 for(std::vector::const_iterator i = ccs.begin(); i != ccs.end(); ++i) { - cmCustomCommandGenerator ccg(*i, this->ConfigName, - this->Makefile); + cmCustomCommandGenerator ccg(*i, this->ConfigName, this); this->AppendCustomCommand(commands, ccg, target, true, relative); } } diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx index a26a1dd..9263053 100644 --- a/Source/cmLocalVisualStudio6Generator.cxx +++ b/Source/cmLocalVisualStudio6Generator.cxx @@ -62,7 +62,7 @@ public: } void Write(cmCustomCommand const& cc) { - cmCustomCommandGenerator ccg(cc, this->Config, this->LG->GetMakefile()); + cmCustomCommandGenerator ccg(cc, this->Config, this->LG); if(this->First) { this->Code += this->Event + "_Cmds="; @@ -625,7 +625,7 @@ cmLocalVisualStudio6Generator for(i = this->Configurations.begin(); i != this->Configurations.end(); ++i) { std::string config = this->GetConfigName(*i); - cmCustomCommandGenerator ccg(command, config, this->Makefile); + cmCustomCommandGenerator ccg(command, config, this); std::string comment = this->ConstructComment(ccg, "Building Custom Rule $(InputPath)"); if(comment == "") diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx index 0e5e7a5..bf82c87 100644 --- a/Source/cmLocalVisualStudio7Generator.cxx +++ b/Source/cmLocalVisualStudio7Generator.cxx @@ -619,7 +619,7 @@ public: } void Write(cmCustomCommand const& cc) { - cmCustomCommandGenerator ccg(cc, this->Config, this->LG->GetMakefile()); + cmCustomCommandGenerator ccg(cc, this->Config, this->LG); if(this->First) { const char* comment = ccg.GetComment(); @@ -1903,7 +1903,7 @@ WriteCustomRule(std::ostream& fout, for (std::vector::const_iterator i = configs.begin(); i != configs.end(); ++i) { - cmCustomCommandGenerator ccg(command, *i, this->Makefile); + cmCustomCommandGenerator ccg(command, *i, this); cmLVS7GFileConfig const& fc = fcinfo.FileConfigMap[*i]; fout << "\t\t\t\tGetCustomCommand(), this->ConfigName, - this->Makefile); + this->LocalGenerator); this->GenerateCustomRuleFile(ccg); if (clean) { @@ -1182,7 +1182,8 @@ cmMakefileTargetGenerator { if(cmCustomCommand* cc = (*source)->GetCustomCommand()) { - cmCustomCommandGenerator ccg(*cc, this->ConfigName, this->Makefile); + cmCustomCommandGenerator ccg(*cc, this->ConfigName, + this->LocalGenerator); const std::vector& outputs = ccg.GetOutputs(); depends.insert(depends.end(), outputs.begin(), outputs.end()); } diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 88da09b..ea2816b 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -608,7 +608,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement() ci = cmdLists[i]->begin(); ci != cmdLists[i]->end(); ++ci) { - cmCustomCommandGenerator ccg(*ci, cfgName, mf); + cmCustomCommandGenerator ccg(*ci, cfgName, this->GetLocalGenerator()); localGen.AppendCustomCommandLines(ccg, *cmdLineLists[i]); std::vector const& ccByproducts = ccg.GetByproducts(); std::transform(ccByproducts.begin(), ccByproducts.end(), diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 74f262c..1479d0b 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -509,7 +509,7 @@ cmNinjaTargetGenerator { cmCustomCommand const* cc = *cci; cmCustomCommandGenerator ccg(*cc, this->GetConfigName(), - this->GetMakefile()); + this->GetLocalGenerator()); const std::vector& ccoutputs = ccg.GetOutputs(); const std::vector& ccbyproducts= ccg.GetByproducts(); std::transform(ccoutputs.begin(), ccoutputs.end(), diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx index c3bf011..58b901a 100644 --- a/Source/cmNinjaUtilityTargetGenerator.cxx +++ b/Source/cmNinjaUtilityTargetGenerator.cxx @@ -44,7 +44,7 @@ void cmNinjaUtilityTargetGenerator::Generate() for (std::vector::const_iterator ci = cmdLists[i]->begin(); ci != cmdLists[i]->end(); ++ci) { cmCustomCommandGenerator ccg(*ci, this->GetConfigName(), - this->GetMakefile()); + this->GetLocalGenerator()); this->GetLocalGenerator()->AppendCustomCommandDeps(ccg, deps); this->GetLocalGenerator()->AppendCustomCommandLines(ccg, commands); std::vector const& ccByproducts = ccg.GetByproducts(); @@ -65,7 +65,7 @@ void cmNinjaUtilityTargetGenerator::Generate() if(cmCustomCommand* cc = (*source)->GetCustomCommand()) { cmCustomCommandGenerator ccg(*cc, this->GetConfigName(), - this->GetMakefile()); + this->GetLocalGenerator()); this->GetLocalGenerator()->AddCustomCommandTarget(cc, this->GetTarget()); // Depend on all custom command outputs. diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 67d52b8..71785e9 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -890,7 +890,7 @@ cmVisualStudio10TargetGenerator::WriteCustomRule(cmSourceFile const* source, i = this->Configurations.begin(); i != this->Configurations.end(); ++i) { - cmCustomCommandGenerator ccg(command, *i, this->Makefile); + cmCustomCommandGenerator ccg(command, *i, this->LocalGenerator); std::string comment = lg->ConstructComment(ccg); comment = cmVS10EscapeComment(comment); std::string script = @@ -2794,7 +2794,7 @@ void cmVisualStudio10TargetGenerator::WriteEvent( for(std::vector::const_iterator i = commands.begin(); i != commands.end(); ++i) { - cmCustomCommandGenerator ccg(*i, configName, this->Makefile); + cmCustomCommandGenerator ccg(*i, configName, this->LocalGenerator); comment += pre; comment += lg->ConstructComment(ccg); script += pre; -- cgit v0.12