Makefiles: Port to cmGeneratorTarget.

This commit is contained in:
Stephen Kelly 2015-10-18 23:20:47 +02:00
parent 80de856bb5
commit 4bc65d76f1
11 changed files with 48 additions and 48 deletions

View File

@ -18,7 +18,6 @@
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmSystemTools.h"
#include "cmTarget.h"
cmCommonTargetGenerator::cmCommonTargetGenerator(
cmOutputConverter::RelativeRoot wd,
@ -26,7 +25,6 @@ cmCommonTargetGenerator::cmCommonTargetGenerator(
)
: WorkingDirectory(wd)
, GeneratorTarget(gt)
, Target(gt->Target)
, Makefile(gt->Makefile)
, LocalGenerator(static_cast<cmLocalCommonGenerator*>(gt->LocalGenerator))
, GlobalGenerator(static_cast<cmGlobalCommonGenerator*>(

View File

@ -21,7 +21,6 @@ class cmGlobalCommonGenerator;
class cmLocalCommonGenerator;
class cmMakefile;
class cmSourceFile;
class cmTarget;
/** \class cmCommonTargetGenerator
* \brief Common infrastructure for Makefile and Ninja per-target generators
@ -49,7 +48,6 @@ protected:
cmOutputConverter::RelativeRoot WorkingDirectory;
cmGeneratorTarget* GeneratorTarget;
cmTarget* Target;
cmMakefile* Makefile;
cmLocalCommonGenerator* LocalGenerator;
cmGlobalCommonGenerator* GlobalGenerator;

View File

@ -16,7 +16,6 @@
#include "cmake.h"
#include "cmGeneratedFileStream.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
#include "cmGeneratorTarget.h"
#include "cmAlgorithms.h"
@ -742,7 +741,7 @@ cmGlobalUnixMakefileGenerator3
makefileName = localName;
makefileName += "/build.make";
bool needRequiresStep = this->NeedRequiresStep(*gtarget->Target);
bool needRequiresStep = this->NeedRequiresStep(gtarget);
lg->WriteDivider(ruleFileStream);
ruleFileStream
@ -1129,19 +1128,19 @@ void cmGlobalUnixMakefileGenerator3::WriteHelpRule
bool cmGlobalUnixMakefileGenerator3
::NeedRequiresStep(cmTarget const& target)
::NeedRequiresStep(const cmGeneratorTarget* target)
{
std::set<std::string> languages;
cmGeneratorTarget* gtgt = this->GetGeneratorTarget(&target);
gtgt->GetLanguages(languages,
target.GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE"));
target->GetLanguages(languages,
target->Target->GetMakefile()
->GetSafeDefinition("CMAKE_BUILD_TYPE"));
for(std::set<std::string>::const_iterator l = languages.begin();
l != languages.end(); ++l)
{
std::string var = "CMAKE_NEEDS_REQUIRES_STEP_";
var += *l;
var += "_FLAG";
if(target.GetMakefile()->GetDefinition(var))
if(target->Target->GetMakefile()->GetDefinition(var))
{
return true;
}

View File

@ -154,7 +154,7 @@ protected:
cmGeneratorTarget* target);
// does this generator need a requires step for any of its targets
bool NeedRequiresStep(cmTarget const&);
bool NeedRequiresStep(cmGeneratorTarget const*);
// Target name hooks for superclass.
const char* GetAllTargetName() const { return "all"; }

View File

@ -1977,7 +1977,7 @@ void cmLocalUnixMakefileGenerator3
cmGeneratorTarget* target)
{
ImplicitDependLanguageMap const& implicitLangs =
this->GetImplicitDepends(*target->Target);
this->GetImplicitDepends(target);
// list the languages
cmakefileStream
@ -2292,19 +2292,20 @@ cmLocalUnixMakefileGenerator3
//----------------------------------------------------------------------------
cmLocalUnixMakefileGenerator3::ImplicitDependLanguageMap const&
cmLocalUnixMakefileGenerator3::GetImplicitDepends(cmTarget const& tgt)
cmLocalUnixMakefileGenerator3::GetImplicitDepends(
const cmGeneratorTarget* tgt)
{
return this->ImplicitDepends[tgt.GetName()];
return this->ImplicitDepends[tgt->GetName()];
}
//----------------------------------------------------------------------------
void
cmLocalUnixMakefileGenerator3::AddImplicitDepends(cmTarget const& tgt,
cmLocalUnixMakefileGenerator3::AddImplicitDepends(const cmGeneratorTarget* tgt,
const std::string& lang,
const char* obj,
const char* src)
{
this->ImplicitDepends[tgt.GetName()][lang][obj].push_back(src);
this->ImplicitDepends[tgt->GetName()][lang][obj].push_back(src);
}
//----------------------------------------------------------------------------

View File

@ -21,7 +21,6 @@ class cmCustomCommand;
class cmCustomCommandGenerator;
class cmDepends;
class cmMakefileTargetGenerator;
class cmTarget;
class cmSourceFile;
/** \class cmLocalUnixMakefileGenerator3
@ -141,9 +140,11 @@ public:
public std::map<std::string, ImplicitDependFileMap> {};
struct ImplicitDependTargetMap:
public std::map<std::string, ImplicitDependLanguageMap> {};
ImplicitDependLanguageMap const& GetImplicitDepends(cmTarget const& tgt);
ImplicitDependLanguageMap const&
GetImplicitDepends(cmGeneratorTarget const* tgt);
void AddImplicitDepends(cmTarget const& tgt, const std::string& lang,
void AddImplicitDepends(cmGeneratorTarget const* tgt,
const std::string& lang,
const char* obj, const char* src);
// write the target rules for the local Makefile into the stream
@ -197,12 +198,12 @@ protected:
const std::string& helpTarget);
void WriteTargetDependRule(std::ostream& ruleFileStream,
cmTarget& target);
cmGeneratorTarget* target);
void WriteTargetCleanRule(std::ostream& ruleFileStream,
cmTarget& target,
cmGeneratorTarget* target,
const std::vector<std::string>& files);
void WriteTargetRequiresRule(std::ostream& ruleFileStream,
cmTarget& target,
cmGeneratorTarget* target,
const std::vector<std::string>& objects);
void AppendRuleDepend(std::vector<std::string>& depends,

View File

@ -16,7 +16,6 @@
#include "cmLocalUnixMakefileGenerator3.h"
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
#include "cmake.h"
//----------------------------------------------------------------------------
@ -279,11 +278,13 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
if(!relink)
{
this->LocalGenerator
->AppendCustomCommands(commands, this->Target->GetPreBuildCommands(),
this->GeneratorTarget);
->AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPreBuildCommands(),
this->GeneratorTarget);
this->LocalGenerator
->AppendCustomCommands(commands, this->Target->GetPreLinkCommands(),
this->GeneratorTarget);
->AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPreLinkCommands(),
this->GeneratorTarget);
}
// Determine whether a link script will be used.
@ -448,8 +449,9 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
if(!relink)
{
this->LocalGenerator->
AppendCustomCommands(commands, this->Target->GetPostBuildCommands(),
this->GeneratorTarget);
AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPostBuildCommands(),
this->GeneratorTarget);
}
// Write the build rule.

View File

@ -16,7 +16,6 @@
#include "cmLocalUnixMakefileGenerator3.h"
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
#include "cmake.h"
#include "cmAlgorithms.h"
@ -114,7 +113,8 @@ void cmMakefileLibraryTargetGenerator::WriteObjectLibraryRules()
// Add post-build rules.
this->LocalGenerator->
AppendCustomCommands(commands, this->Target->GetPostBuildCommands(),
AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPostBuildCommands(),
this->GeneratorTarget);
// Depend on the object files.
@ -457,11 +457,13 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
if(!relink)
{
this->LocalGenerator
->AppendCustomCommands(commands, this->Target->GetPreBuildCommands(),
this->GeneratorTarget);
->AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPreBuildCommands(),
this->GeneratorTarget);
this->LocalGenerator
->AppendCustomCommands(commands, this->Target->GetPreLinkCommands(),
this->GeneratorTarget);
->AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPreLinkCommands(),
this->GeneratorTarget);
}
// Determine whether a link script will be used.
@ -811,8 +813,9 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
if(!relink)
{
this->LocalGenerator->
AppendCustomCommands(commands, this->Target->GetPostBuildCommands(),
this->GeneratorTarget);
AppendCustomCommands(commands,
this->GeneratorTarget->Target->GetPostBuildCommands(),
this->GeneratorTarget);
}
// Compute the list of outputs.

View File

@ -18,7 +18,6 @@
#include "cmLocalUnixMakefileGenerator3.h"
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
#include "cmake.h"
#include "cmState.h"
#include "cmComputeLinkInformation.h"
@ -432,7 +431,7 @@ void cmMakefileTargetGenerator
std::string srcFullPath =
this->Convert(source.GetFullPath(), cmLocalGenerator::FULL);
this->LocalGenerator->
AddImplicitDepends(*this->Target, lang,
AddImplicitDepends(this->GeneratorTarget, lang,
objFullPath.c_str(),
srcFullPath.c_str());
}
@ -1241,7 +1240,7 @@ void cmMakefileTargetGenerator
std::string srcFullPath =
this->Convert(idi->second, cmLocalGenerator::FULL);
this->LocalGenerator->
AddImplicitDepends(*this->Target, idi->first,
AddImplicitDepends(this->GeneratorTarget, idi->first,
objFullPath.c_str(),
srcFullPath.c_str());
}

View File

@ -24,7 +24,6 @@ class cmGeneratedFileStream;
class cmGlobalUnixMakefileGenerator3;
class cmLocalUnixMakefileGenerator3;
class cmMakefile;
class cmTarget;
class cmSourceFile;
/** \class cmMakefileTargetGenerator
@ -51,7 +50,6 @@ public:
std::string GetProgressFileNameFull()
{ return this->ProgressFileNameFull; }
cmTarget* GetTarget() { return this->Target;}
cmGeneratorTarget* GetGeneratorTarget() { return this->GeneratorTarget;}
protected:

View File

@ -16,7 +16,6 @@
#include "cmLocalUnixMakefileGenerator3.h"
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmTarget.h"
//----------------------------------------------------------------------------
cmMakefileUtilityTargetGenerator
@ -68,19 +67,21 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
// Utility targets store their rules in pre- and post-build commands.
this->LocalGenerator->AppendCustomDepends
(depends, this->Target->GetPreBuildCommands());
(depends, this->GeneratorTarget->Target->GetPreBuildCommands());
this->LocalGenerator->AppendCustomDepends
(depends, this->Target->GetPostBuildCommands());
(depends, this->GeneratorTarget->Target->GetPostBuildCommands());
this->LocalGenerator->AppendCustomCommands
(commands, this->Target->GetPreBuildCommands(), this->GeneratorTarget);
(commands, this->GeneratorTarget->Target->GetPreBuildCommands(),
this->GeneratorTarget);
// Depend on all custom command outputs for sources
this->DriveCustomCommands(depends);
this->LocalGenerator->AppendCustomCommands
(commands, this->Target->GetPostBuildCommands(), this->GeneratorTarget);
(commands, this->GeneratorTarget->Target->GetPostBuildCommands(),
this->GeneratorTarget);
// Add dependencies on targets that must be built first.
this->AppendTargetDepends(depends);