diff options
author | Brad King <brad.king@kitware.com> | 2008-03-02 19:35:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-03-02 19:35:23 (GMT) |
commit | d732de4a8a189699135e67f8bad66757bdcf188f (patch) | |
tree | a18672b2681d61fd62d3be37cb9166ab3fe50290 /Source/cmTarget.cxx | |
parent | 16a415dd0c81a4a11cf6fa78755ce636e5ac3ab9 (diff) | |
download | CMake-d732de4a8a189699135e67f8bad66757bdcf188f.zip CMake-d732de4a8a189699135e67f8bad66757bdcf188f.tar.gz CMake-d732de4a8a189699135e67f8bad66757bdcf188f.tar.bz2 |
ENH: Cleanup builtin chrpath support
- Move computation of extended build-tree rpath
to cmComputeLinkInformation
- Only enable the extended build-tree rpath if
the target will be installed
- Generalize the interface of file(CHRPATH)
- When changing the rpath on installation only
replace the part generated by CMake because
the native tools (ex SunCC on Linux) might have
added their own part to the rpath
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")) { |