diff options
author | Eric NOULARD <eric.noulard@gmail.com> | 2010-08-23 15:38:33 (GMT) |
---|---|---|
committer | Eric NOULARD <eric.noulard@gmail.com> | 2010-08-23 15:38:33 (GMT) |
commit | 6a521f8604ee4e6a757109e731a36fdc5575f6c8 (patch) | |
tree | 2a0ef90109f4c057d3673922448ee24549f9eb0a /Source/cmInstallGenerator.cxx | |
parent | 40dc97dc73b67d76442b386b73c57437fa72db34 (diff) | |
download | CMake-6a521f8604ee4e6a757109e731a36fdc5575f6c8.zip CMake-6a521f8604ee4e6a757109e731a36fdc5575f6c8.tar.gz CMake-6a521f8604ee4e6a757109e731a36fdc5575f6c8.tar.bz2 |
CPack Enable better handling of absolute installed files
The idea of the patch is to let the install generator define
CPACK_ABSOLUTE_INSTALL_FILES then when CMake is installing
project he will concatenate the list of files and give
it to specific CPack Generator by defining CPACK_ABSOLUTE_INSTALL_FILES
to be the list of ALL files that were installed using absolute destination.
An example of use has been applied to RPM generator which now
tries to automatically build a relocatable package.
Diffstat (limited to 'Source/cmInstallGenerator.cxx')
-rw-r--r-- | Source/cmInstallGenerator.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmInstallGenerator.cxx b/Source/cmInstallGenerator.cxx index 47ca769..9d5e416 100644 --- a/Source/cmInstallGenerator.cxx +++ b/Source/cmInstallGenerator.cxx @@ -60,6 +60,26 @@ void cmInstallGenerator } os << indent; std::string dest = this->GetInstallDestination(); + if (cmSystemTools::FileIsFullPath(dest.c_str())) + { + os << "list(APPEND CPACK_ABSOLUTE_DESTINATION_FILES\n"; + os << indent << " \""; + for(std::vector<std::string>::const_iterator fi = files.begin(); + fi != files.end(); ++fi) + { + if (fi!=files.begin()) os << ";"; + os << dest << cmSystemTools::ConvertToOutputPath("/"); + if (rename && *rename) + { + os << rename; + } + else + { + os << cmSystemTools::GetFilenameName(*fi); + } + } + os << "\")\n"; + } os << "FILE(INSTALL DESTINATION \"" << dest << "\" TYPE " << stype.c_str(); if(optional) { |