summaryrefslogtreecommitdiff
path: root/Source/cmInstallTargetGenerator.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-10-21 13:11:42 -0400
committerBrad King <brad.king@kitware.com>2009-10-21 13:11:42 -0400
commit7a6db286c8bacb0e9c90e987f3b84381a9a24d28 (patch)
treeb848d1aca8fcb7b03ce7e2668a625b327dc093e8 /Source/cmInstallTargetGenerator.h
parent7a9f75c1a8ab159398ee852774904e7b7b0457c2 (diff)
downloadcmake-7a6db286c8bacb0e9c90e987f3b84381a9a24d28.tar.gz
Tweak all files during target installation
During installation of a target we generate "tweak" rules to update the installed file (RPATH, strip, ranlib, etc.). However, some targets install multiple files, such as the versioned names of a shared library. Previously the extra files for a target have always been symbolic links, but for cross-compiling from Windows to UNIX they may need to be copies. This commit teaches the generated install scripts to loop over all files installed for the target to apply tweaks to those that are not symlinks. See issue #9171.
Diffstat (limited to 'Source/cmInstallTargetGenerator.h')
-rw-r--r--Source/cmInstallTargetGenerator.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/Source/cmInstallTargetGenerator.h b/Source/cmInstallTargetGenerator.h
index b62853a16a..b48d456619 100644
--- a/Source/cmInstallTargetGenerator.h
+++ b/Source/cmInstallTargetGenerator.h
@@ -63,6 +63,20 @@ protected:
virtual void GenerateScriptForConfig(std::ostream& os,
const char* config,
Indent const& indent);
+ typedef void (cmInstallTargetGenerator::*TweakMethod)(
+ std::ostream&, Indent const&, const char*, std::string const&
+ );
+ void AddTweak(std::ostream& os, Indent const& indent,
+ const char* config, std::string const& file,
+ TweakMethod tweak);
+ void AddTweak(std::ostream& os, Indent const& indent,
+ const char* config, std::vector<std::string> const& files,
+ TweakMethod tweak);
+ std::string GetDestDirPath(std::string const& file);
+ void PreReplacementTweaks(std::ostream& os, Indent const& indent,
+ const char* config, std::string const& file);
+ void PostReplacementTweaks(std::ostream& os, Indent const& indent,
+ const char* config, std::string const& file);
void AddInstallNamePatchRule(std::ostream& os, Indent const& indent,
const char* config,
const std::string& toDestDirPath);