diff options
Diffstat (limited to 'Source/CPack/bills-comments.txt')
-rw-r--r-- | Source/CPack/bills-comments.txt | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/Source/CPack/bills-comments.txt b/Source/CPack/bills-comments.txt new file mode 100644 index 0000000..c3b4ee8 --- /dev/null +++ b/Source/CPack/bills-comments.txt @@ -0,0 +1,68 @@ +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() + +- |