diff options
-rw-r--r-- | Source/cmMakefileExecutableTargetGenerator.cxx | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/Source/cmMakefileExecutableTargetGenerator.cxx b/Source/cmMakefileExecutableTargetGenerator.cxx index 87d6feb..c953b72 100644 --- a/Source/cmMakefileExecutableTargetGenerator.cxx +++ b/Source/cmMakefileExecutableTargetGenerator.cxx @@ -236,11 +236,15 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) this->Makefile->GetHomeOutputDirectory()); commands.insert(commands.end(), commands1.begin(), commands1.end()); commands1.clear(); - // Add the pre-build and pre-link rules. - this->LocalGenerator-> - AppendCustomCommands(commands, this->Target->GetPreBuildCommands()); - this->LocalGenerator-> - AppendCustomCommands(commands, this->Target->GetPreLinkCommands()); + + // Add the pre-build and pre-link rules building but not when relinking. + if(!relink) + { + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreBuildCommands()); + this->LocalGenerator + ->AppendCustomCommands(commands, this->Target->GetPreLinkCommands()); + } // Construct the main link rule. std::string linkRuleVar = "CMAKE_"; @@ -265,9 +269,12 @@ void cmMakefileExecutableTargetGenerator::WriteExecutableRule(bool relink) commands.push_back(symlink); } - // Add the post-build rules. - this->LocalGenerator->AppendCustomCommands - (commands, this->Target->GetPostBuildCommands()); + // Add the post-build rules when building but not when relinking. + if(!relink) + { + this->LocalGenerator-> + AppendCustomCommands(commands, this->Target->GetPostBuildCommands()); + } // Collect up flags to link in needed libraries. cmOStringStream linklibs; |