1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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 controlled 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()
- -
|