summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-10-23 00:42:58 +0200
committerStephen Kelly <steveire@gmail.com>2015-10-26 22:02:13 +0100
commit3f8aa62bfb339dded326b0bc36016134a3dc845b (patch)
tree52b6c1b7193c445c59ff99dbe105d2a39a1dac64 /Source
parentd288b216af6864567354ccb05e85466fb57d46b0 (diff)
downloadcmake-3f8aa62bfb339dded326b0bc36016134a3dc845b.tar.gz
cmGeneratorTarget: Add API for target-relative commands.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx24
-rw-r--r--Source/cmGeneratorTarget.h4
-rw-r--r--Source/cmGhsMultiTargetGenerator.cxx4
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx6
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx8
-rw-r--r--Source/cmLocalVisualStudio6Generator.cxx26
-rw-r--r--Source/cmLocalVisualStudio7Generator.cxx8
-rw-r--r--Source/cmMakefileExecutableTargetGenerator.cxx6
-rw-r--r--Source/cmMakefileLibraryTargetGenerator.cxx8
-rw-r--r--Source/cmMakefileUtilityTargetGenerator.cxx8
-rw-r--r--Source/cmNinjaNormalTargetGenerator.cxx6
-rw-r--r--Source/cmNinjaUtilityTargetGenerator.cxx4
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx8
13 files changed, 71 insertions, 49 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index fe6b446441..b224f09b34 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -833,6 +833,24 @@ const char* cmGeneratorTarget::GetLocation(const std::string& config) const
return location.c_str();
}
+std::vector<cmCustomCommand> const&
+cmGeneratorTarget::GetPreBuildCommands() const
+{
+ return this->Target->GetPreBuildCommands();
+}
+
+std::vector<cmCustomCommand> const&
+cmGeneratorTarget::GetPreLinkCommands() const
+{
+ return this->Target->GetPreLinkCommands();
+}
+
+std::vector<cmCustomCommand> const&
+cmGeneratorTarget::GetPostBuildCommands() const
+{
+ return this->Target->GetPostBuildCommands();
+}
+
bool cmGeneratorTarget::IsImported() const
{
return this->Target->IsImported();
@@ -2267,11 +2285,11 @@ cmTargetTraceDependencies
// Queue pre-build, pre-link, and post-build rule dependencies.
this->CheckCustomCommands(
- this->GeneratorTarget->Target->GetPreBuildCommands());
+ this->GeneratorTarget->GetPreBuildCommands());
this->CheckCustomCommands(
- this->GeneratorTarget->Target->GetPreLinkCommands());
+ this->GeneratorTarget->GetPreLinkCommands());
this->CheckCustomCommands(
- this->GeneratorTarget->Target->GetPostBuildCommands());
+ this->GeneratorTarget->GetPostBuildCommands());
}
//----------------------------------------------------------------------------
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 544cf0eaf8..2b2dc860c3 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -33,6 +33,10 @@ public:
bool IsImported() const;
const char *GetLocation(const std::string& config) const;
+ std::vector<cmCustomCommand> const &GetPreBuildCommands() const;
+ std::vector<cmCustomCommand> const &GetPreLinkCommands() const;
+ std::vector<cmCustomCommand> const &GetPostBuildCommands() const;
+
#define DECLARE_TARGET_POLICY(POLICY) \
cmPolicies::PolicyStatus GetPolicyStatus ## POLICY () const \
{ return this->PolicyMap.Get(cmPolicies::POLICY); }
diff --git a/Source/cmGhsMultiTargetGenerator.cxx b/Source/cmGhsMultiTargetGenerator.cxx
index 12115be342..18e140e408 100644
--- a/Source/cmGhsMultiTargetGenerator.cxx
+++ b/Source/cmGhsMultiTargetGenerator.cxx
@@ -392,10 +392,10 @@ void cmGhsMultiTargetGenerator::WriteTargetLinkLibraries()
void cmGhsMultiTargetGenerator::WriteCustomCommands()
{
WriteCustomCommandsHelper(
- this->GeneratorTarget->Target->GetPreBuildCommands(),
+ this->GeneratorTarget->GetPreBuildCommands(),
cmTarget::PRE_BUILD);
WriteCustomCommandsHelper(
- this->GeneratorTarget->Target->GetPostBuildCommands(),
+ this->GeneratorTarget->GetPostBuildCommands(),
cmTarget::POST_BUILD);
}
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index eecc82bb42..e6af94fbdf 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -1469,11 +1469,11 @@ void cmGlobalXCodeGenerator::CreateCustomCommands(cmXCodeObject* buildPhases,
cmGeneratorTarget* gtgt)
{
std::vector<cmCustomCommand> const & prebuild
- = gtgt->Target->GetPreBuildCommands();
+ = gtgt->GetPreBuildCommands();
std::vector<cmCustomCommand> const & prelink
- = gtgt->Target->GetPreLinkCommands();
+ = gtgt->GetPreLinkCommands();
std::vector<cmCustomCommand> postbuild
- = gtgt->Target->GetPostBuildCommands();
+ = gtgt->GetPostBuildCommands();
if(gtgt->GetType() == cmState::SHARED_LIBRARY &&
!gtgt->IsFrameworkOnApple())
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index 34a50a3f6c..541257b1a6 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1787,15 +1787,15 @@ void cmLocalUnixMakefileGenerator3
// Global targets store their rules in pre- and post-build commands.
this->AppendCustomDepends(depends,
- gt->Target->GetPreBuildCommands());
+ gt->GetPreBuildCommands());
this->AppendCustomDepends(depends,
- gt->Target->GetPostBuildCommands());
+ gt->GetPostBuildCommands());
this->AppendCustomCommands(commands,
- gt->Target->GetPreBuildCommands(),
+ gt->GetPreBuildCommands(),
gt,
cmLocalGenerator::START_OUTPUT);
this->AppendCustomCommands(commands,
- gt->Target->GetPostBuildCommands(),
+ gt->GetPostBuildCommands(),
gt,
cmLocalGenerator::START_OUTPUT);
std::string targetName = gt->GetName();
diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index d5abf68f78..3b25edab10 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -266,21 +266,21 @@ void cmLocalVisualStudio6Generator::WriteDSPFile(std::ostream& fout,
// depend only on the previous rule.
if ((target->GetType() == cmState::UTILITY ||
target->GetType() == cmState::GLOBAL_TARGET) &&
- (!target->Target->GetPreBuildCommands().empty() ||
- !target->Target->GetPostBuildCommands().empty()))
+ (!target->GetPreBuildCommands().empty() ||
+ !target->GetPostBuildCommands().empty()))
{
// Accumulate the dependencies of all the commands.
std::vector<std::string> depends;
for (std::vector<cmCustomCommand>::const_iterator cr =
- target->Target->GetPreBuildCommands().begin();
- cr != target->Target->GetPreBuildCommands().end(); ++cr)
+ target->GetPreBuildCommands().begin();
+ cr != target->GetPreBuildCommands().end(); ++cr)
{
depends.insert(depends.end(),
cr->GetDepends().begin(), cr->GetDepends().end());
}
for (std::vector<cmCustomCommand>::const_iterator cr =
- target->Target->GetPostBuildCommands().begin();
- cr != target->Target->GetPostBuildCommands().end(); ++cr)
+ target->GetPostBuildCommands().begin();
+ cr != target->GetPostBuildCommands().end(); ++cr)
{
depends.insert(depends.end(),
cr->GetDepends().begin(), cr->GetDepends().end());
@@ -289,14 +289,14 @@ void cmLocalVisualStudio6Generator::WriteDSPFile(std::ostream& fout,
// Add the pre- and post-build commands in order.
int count = 1;
for (std::vector<cmCustomCommand>::const_iterator cr =
- target->Target->GetPreBuildCommands().begin();
- cr != target->Target->GetPreBuildCommands().end(); ++cr)
+ target->GetPreBuildCommands().begin();
+ cr != target->GetPreBuildCommands().end(); ++cr)
{
this->AddUtilityCommandHack(target, count++, depends, *cr);
}
for (std::vector<cmCustomCommand>::const_iterator cr =
- target->Target->GetPostBuildCommands().begin();
- cr != target->Target->GetPostBuildCommands().end(); ++cr)
+ target->GetPostBuildCommands().begin();
+ cr != target->GetPostBuildCommands().end(); ++cr)
{
this->AddUtilityCommandHack(target, count++, depends, *cr);
}
@@ -838,8 +838,8 @@ cmLocalVisualStudio6Generator::CreateTargetRules(cmGeneratorTarget *target,
// Write the pre-build and pre-link together (VS6 does not support both).
event.Start("PreLink");
- event.Write(target->Target->GetPreBuildCommands());
- event.Write(target->Target->GetPreLinkCommands());
+ event.Write(target->GetPreBuildCommands());
+ event.Write(target->GetPreLinkCommands());
cmsys::auto_ptr<cmCustomCommand> pcc(
this->MaybeCreateImplibDir(target, configName, false));
if(pcc.get())
@@ -855,7 +855,7 @@ cmLocalVisualStudio6Generator::CreateTargetRules(cmGeneratorTarget *target,
// Write the post-build rules.
event.Start("PostBuild");
- event.Write(target->Target->GetPostBuildCommands());
+ event.Write(target->GetPostBuildCommands());
event.Finish();
customRuleCode += "# End Special Build Tool\n";
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index ca8d697c07..95a299d522 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -2021,7 +2021,7 @@ void cmLocalVisualStudio7Generator
const char* tool =
this->FortranProject? "VFPreBuildEventTool":"VCPreBuildEventTool";
event.Start(tool);
- event.Write(target->Target->GetPreBuildCommands());
+ event.Write(target->GetPreBuildCommands());
event.Finish();
// Add pre-link event.
@@ -2035,7 +2035,7 @@ void cmLocalVisualStudio7Generator
{
addedPrelink = true;
std::vector<cmCustomCommand> commands =
- target->Target->GetPreLinkCommands();
+ target->GetPreLinkCommands();
cmGlobalVisualStudioGenerator* gg
= static_cast<cmGlobalVisualStudioGenerator*>(this->GlobalGenerator);
gg->AddSymbolExportCommand(
@@ -2045,7 +2045,7 @@ void cmLocalVisualStudio7Generator
}
if (!addedPrelink)
{
- event.Write(target->Target->GetPreLinkCommands());
+ event.Write(target->GetPreLinkCommands());
}
cmsys::auto_ptr<cmCustomCommand> pcc(
this->MaybeCreateImplibDir(target,
@@ -2059,7 +2059,7 @@ void cmLocalVisualStudio7Generator
// Add post-build event.
tool = this->FortranProject? "VFPostBuildEventTool":"VCPostBuildEventTool";
event.Start(tool);
- event.Write(target->Target->GetPostBuildCommands());
+ event.Write(target->GetPostBuildCommands());
event.Finish();
}
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx
index f56037fdbd..9e35e4c2b2 100644
--- a/Source/cmMakefileExecutableTargetGenerator.cxx
+++ b/Source/cmMakefileExecutableTargetGenerator.cxx
@@ -279,11 +279,11 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
{
this->LocalGenerator
->AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPreBuildCommands(),
+ this->GeneratorTarget->GetPreBuildCommands(),
this->GeneratorTarget);
this->LocalGenerator
->AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPreLinkCommands(),
+ this->GeneratorTarget->GetPreLinkCommands(),
this->GeneratorTarget);
}
@@ -450,7 +450,7 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink)
{
this->LocalGenerator->
AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPostBuildCommands(),
+ this->GeneratorTarget->GetPostBuildCommands(),
this->GeneratorTarget);
}
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 0a65641de3..1923ea4fb0 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -114,7 +114,7 @@ void cmMakefileLibraryTargetGenerator::WriteObjectLibraryRules()
// Add post-build rules.
this->LocalGenerator->
AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPostBuildCommands(),
+ this->GeneratorTarget->GetPostBuildCommands(),
this->GeneratorTarget);
// Depend on the object files.
@@ -458,11 +458,11 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
{
this->LocalGenerator
->AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPreBuildCommands(),
+ this->GeneratorTarget->GetPreBuildCommands(),
this->GeneratorTarget);
this->LocalGenerator
->AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPreLinkCommands(),
+ this->GeneratorTarget->GetPreLinkCommands(),
this->GeneratorTarget);
}
@@ -814,7 +814,7 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
{
this->LocalGenerator->
AppendCustomCommands(commands,
- this->GeneratorTarget->Target->GetPostBuildCommands(),
+ this->GeneratorTarget->GetPostBuildCommands(),
this->GeneratorTarget);
}
diff --git a/Source/cmMakefileUtilityTargetGenerator.cxx b/Source/cmMakefileUtilityTargetGenerator.cxx
index d35c3ae032..5b62cbf3b2 100644
--- a/Source/cmMakefileUtilityTargetGenerator.cxx
+++ b/Source/cmMakefileUtilityTargetGenerator.cxx
@@ -67,20 +67,20 @@ void cmMakefileUtilityTargetGenerator::WriteRuleFiles()
// Utility targets store their rules in pre- and post-build commands.
this->LocalGenerator->AppendCustomDepends
- (depends, this->GeneratorTarget->Target->GetPreBuildCommands());
+ (depends, this->GeneratorTarget->GetPreBuildCommands());
this->LocalGenerator->AppendCustomDepends
- (depends, this->GeneratorTarget->Target->GetPostBuildCommands());
+ (depends, this->GeneratorTarget->GetPostBuildCommands());
this->LocalGenerator->AppendCustomCommands
- (commands, this->GeneratorTarget->Target->GetPreBuildCommands(),
+ (commands, this->GeneratorTarget->GetPreBuildCommands(),
this->GeneratorTarget);
// Depend on all custom command outputs for sources
this->DriveCustomCommands(depends);
this->LocalGenerator->AppendCustomCommands
- (commands, this->GeneratorTarget->Target->GetPostBuildCommands(),
+ (commands, this->GeneratorTarget->GetPostBuildCommands(),
this->GeneratorTarget);
// Add dependencies on targets that must be built first.
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index b533d377dd..17561b5ab8 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -598,9 +598,9 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
}
const std::vector<cmCustomCommand> *cmdLists[3] = {
- &gt.Target->GetPreBuildCommands(),
- &gt.Target->GetPreLinkCommands(),
- &gt.Target->GetPostBuildCommands()
+ &gt.GetPreBuildCommands(),
+ &gt.GetPreLinkCommands(),
+ &gt.GetPostBuildCommands()
};
std::vector<std::string> preLinkCmdLines, postBuildCmdLines;
diff --git a/Source/cmNinjaUtilityTargetGenerator.cxx b/Source/cmNinjaUtilityTargetGenerator.cxx
index b2a5334fcc..edc65f030c 100644
--- a/Source/cmNinjaUtilityTargetGenerator.cxx
+++ b/Source/cmNinjaUtilityTargetGenerator.cxx
@@ -33,8 +33,8 @@ void cmNinjaUtilityTargetGenerator::Generate()
cmNinjaDeps deps, outputs, util_outputs(1, utilCommandName);
const std::vector<cmCustomCommand> *cmdLists[2] = {
- &this->GetGeneratorTarget()->Target->GetPreBuildCommands(),
- &this->GetGeneratorTarget()->Target->GetPostBuildCommands()
+ &this->GetGeneratorTarget()->GetPreBuildCommands(),
+ &this->GetGeneratorTarget()->GetPostBuildCommands()
};
bool uses_terminal = false;
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 9c9f5abea1..541e5f6f1c 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2814,7 +2814,7 @@ cmVisualStudio10TargetGenerator::WriteEvents(std::string const& configName)
{
addedPrelink = true;
std::vector<cmCustomCommand> commands =
- this->GeneratorTarget->Target->GetPreLinkCommands();
+ this->GeneratorTarget->GetPreLinkCommands();
this->GlobalGenerator->AddSymbolExportCommand(
this->GeneratorTarget, commands, configName);
this->WriteEvent("PreLinkEvent", commands, configName);
@@ -2823,12 +2823,12 @@ cmVisualStudio10TargetGenerator::WriteEvents(std::string const& configName)
if (!addedPrelink)
{
this->WriteEvent("PreLinkEvent",
- this->GeneratorTarget->Target->GetPreLinkCommands(), configName);
+ this->GeneratorTarget->GetPreLinkCommands(), configName);
}
this->WriteEvent("PreBuildEvent",
- this->GeneratorTarget->Target->GetPreBuildCommands(), configName);
+ this->GeneratorTarget->GetPreBuildCommands(), configName);
this->WriteEvent("PostBuildEvent",
- this->GeneratorTarget->Target->GetPostBuildCommands(), configName);
+ this->GeneratorTarget->GetPostBuildCommands(), configName);
}
void cmVisualStudio10TargetGenerator::WriteEvent(