summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-12-18 22:50:27 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-12-18 22:50:27 (GMT)
commit3ae731fab7a3b992c321226262076a2622f64c11 (patch)
tree223da7b100533710445dde2a52243baff0883452 /Source/cmLocalGenerator.h
parentf5f397debde141a15225ea52bc2768d723a27375 (diff)
downloadCMake-3ae731fab7a3b992c321226262076a2622f64c11.zip
CMake-3ae731fab7a3b992c321226262076a2622f64c11.tar.gz
CMake-3ae731fab7a3b992c321226262076a2622f64c11.tar.bz2
ENH: add support for chrpath, so the RPATH in ELF files can be changed when
installing without having to link the target again -> can save a lot of time chrpath is handled very similar to install_name_tool on the mac. If the RPATH in the build tree file is to short, it is padded using the separator character. This is currently disabled by default, it can be enabled using the option CMAKE_USE_CHRPATH. There are additional checks whether it is safe to enable it. I will rework them and use FILE(READ) instead to detect whether the binaries are actually ELF files. chrpath is available here http://www.tux.org/pub/X-Windows/ftp.hungry.com/chrpath/ or kde svn (since a few days): http://websvn.kde.org/trunk/kdesupport/chrpath/ Alex
Diffstat (limited to 'Source/cmLocalGenerator.h')
-rw-r--r--Source/cmLocalGenerator.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 9f24f3f..1015251 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -242,6 +242,13 @@ public:
*/
virtual std::string GetTargetDirectory(cmTarget const& target) const;
+ ///! Determine the arguments for the linker call, used also by
+ /// cmInstallTargetGenerator
+ bool GetLinkerArgs(std::string& rpath, std::string& linkLibs,
+ cmTarget& tgt, bool relink, int minRpathSize);
+
+ bool IsChrpathAvailable(const cmTarget& target);
+
protected:
/** Construct a comment for a custom command. */
@@ -258,10 +265,6 @@ protected:
///! put all the libraries for a target on into the given stream
virtual void OutputLinkLibraries(std::ostream&, cmTarget&, bool relink);
- ///! Determine the arguments for the linker call
- bool GetLinkerArgs(std::string& rpath, std::string& linkLibs,
- cmTarget& tgt, bool relink);
-
// Expand rule variables in CMake of the type found in language rules
void ExpandRuleVariables(std::string& string,
const RuleVariables& replaceValues);