bills-comments.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. cpack.cxx
  2. cmCPackGenerators -- creates cmCPackGenericGenerator's via NewGenerator
  3. - a cmCPackGenericGenerator factory
  4. cmCPackGenericGenerator::Initialize
  5. this->InitializeInternal
  6. CPACK_INCLUDE_TOPLEVEL_DIRECTORY = 0 turns off
  7. // binary package run
  8. cmCPackGenericGenerator::ProcessGenerator // DoPackage
  9. cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars
  10. cmCPackGenericGenerator::InstallProject
  11. run preinstall (make preinstall/fast)
  12. call ReadListFile(cmake_install.cmake)
  13. glob recurse in install directory to get list of files
  14. this->CompressFiles with the list of files
  15. // source package run
  16. cmCPackGenericGenerator::ProcessGenerator // DoPackage
  17. cmCPackGenericGenerator::PrepareNames -- sets a bunch of CPACK_vars
  18. cmCPackGenericGenerator::InstallProject -->
  19. if set CPACK_INSTALLED_DIRECTORIES
  20. glob the files in that directory
  21. copy those files to the tmp install directory _CPack something
  22. glob recurse in install directory to get list of files
  23. this->CompressFiles with the list of files
  24. cmCPackGenericGenerator::InstallProject is used for both source and binary
  25. packages. It is controlled based on values set in CPACK_ variables.
  26. InstallProject
  27. 1. CPACK_INSTALL_COMMANDS - a list of commands used to install the package
  28. 2. CPACK_INSTALLED_DIRECTORIES - copy this directory to CPACK_TEMPORARY_DIRECTORY
  29. 3. CPACK_INSTALL_CMAKE_PROJECTS - a cmake install script
  30. - run make preinstall
  31. - run cmake_install.cmake
  32. - set CMAKE_INSTALL_PREFIX to the temp directory
  33. - CPACK_BUILD_CONFIG check this and set the BUILD_TYPE to it
  34. - ReadListFile on the install script cmake_install.cmake
  35. - run strip on the executables and libraries if CPACK_STRIP_FILES is TRUE
  36. Recommendations:
  37. rename cmCPackGenerators to cmCPackGeneratorFactory
  38. rename cmCPackGenericGenerator --> cmCPackGenerator
  39. rename cmCPackGenericGenerator::ProcessGenerator -> cmCPackGenerator::DoPackage
  40. break up cmCPackGenerator::InstallProject so it calls the following:
  41. // run user provided install commands
  42. cmCPackGenerator::RunInstallCommands();
  43. // copy entire directories that need no processing like source trees
  44. cmCPackGenerator::CopyPreInstalledDirectories();
  45. // run the cmake install scripts if provided
  46. cmCPackGenerator::RunCMakeInstallScripts()
  47. -