Revision 08ba128f51c94e3e905d45cc36c6fb21d020df56 authored by Stephen Kelly on 06 March 2014, 14:03:42 UTC, committed by Stephen Kelly on 06 March 2014, 14:07:37 UTC
If a package is requested with an EXACT version, that doesn't imply that dependencies must be found EXACTly too. Extend the macro to allow specifying that a dependency must be found by EXACT version instead.
1 parent 948d5d1
bills-comments.txt
cpack.cxx
cmCPackGenerators -- creates cmCPackGenericGenerator's via NewGenerator
- a cmCPackGenericGenerator factory
cmCPackGenericGenerator::Initialize
this->InitializeInternal
CPACK_INCLUDE_TOPLEVEL_DIRECTORY = 0 turns off
// binary package run
cmCPackGenericGenerator::ProcessGenerator // DoPackage
cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars
cmCPackGenericGenerator::InstallProject
run preinstall (make preinstall/fast)
call ReadListFile(cmake_install.cmake)
glob recurse in install directory to get list of files
this->CompressFiles with the list of files
// source package run
cmCPackGenericGenerator::ProcessGenerator // DoPackage
cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars
cmCPackGenericGenerator::InstallProject -->
if set CPACK_INSTALLED_DIRECTORIES
glob the files in that directory
copy those files to the tmp install directory _CPack something
glob recurse in install directory to get list of files
this->CompressFiles with the list of files
cmCPackGenericGenerator::InstallProject is used for both source and binary
packages. It is controled based on values set in CPACK_ variables.
InstallProject
1. CPACK_INSTALL_COMMANDS - a list of commands used to install the package
2. CPACK_INSTALLED_DIRECTORIES - copy this directory to CPACK_TEMPORARY_DIRECTORY
3. CPACK_INSTALL_CMAKE_PROJECTS - a cmake install script
- run make preinstall
- run cmake_install.cmake
- set CMAKE_INSTALL_PREFIX to the temp directory
- CPACK_BUILD_CONFIG check this and set the BUILD_TYPE to it
- ReadListFile on the install script cmake_install.cmake
- run strip on the executables and libraries if CPACK_STRIP_FILES is TRUE
Recommendations:
rename cmCPackGenerators to cmCPackGeneratorFactory
rename cmCPackGenericGenerator --> cmCPackGenerator
rename cmCPackGenericGenerator::ProcessGenerator -> cmCPackGenerator::DoPackage
break up cmCPackGenerator::InstallProject so it calls the following:
// run user provided install commands
cmCPackGenerator::RunInstallCommands();
// copy entire directories that need no processing like source trees
cmCPackGenerator::CopyPreInstalledDirectories();
// run the cmake install scripts if provided
cmCPackGenerator::RunCMakeInstallScripts()
-
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...