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