diff options
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r-- | Source/cmTarget.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index c14e527..55947e2 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -3007,6 +3007,21 @@ void cmTarget::GetLanguages(std::set<cmStdString>& languages) const bool cmTarget::IsChrpathUsed() { #if defined(CMAKE_USE_ELF_PARSER) + // Only certain target types have an rpath. + if(!(this->GetType() == cmTarget::SHARED_LIBRARY || + this->GetType() == cmTarget::MODULE_LIBRARY || + this->GetType() == cmTarget::EXECUTABLE)) + { + return false; + } + + // If the target will not be installed we do not need to change its + // rpath. + if(!this->GetHaveInstallRule()) + { + return false; + } + // Skip chrpath if skipping rpath altogether. if(this->Makefile->IsOn("CMAKE_SKIP_RPATH")) { |