/CPackConfig.cmake

https://github.com/meshell/CMake_project_template · CMake · 88 lines · 67 code · 14 blank · 7 comment · 4 complexity · 5fa91526005218eb7e1436c4ccc4e3ad MD5 · raw file

  1. ### versions
  2. set(CPACK_PACKAGE_VERSION_MAJOR "${Project_VERSION_MAJOR}")
  3. set(CPACK_PACKAGE_VERSION_MINOR "${Project_VERSION_MINOR}")
  4. set(CPACK_PACKAGE_VERSION_PATCH "${Project_VERSION_PATCH}")
  5. set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
  6. ### general settings
  7. set(CPACK_PACKAGE_NAME "${APPLICATION_NAME}")
  8. set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C++ Project Template based on CMake.")
  9. set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
  10. set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
  11. set(CPACK_PACKAGE_VENDOR "Michel Estermann")
  12. set(CPACK_PACKAGE_INSTALL_DIRECTORY "Cpp CMake Project Template")
  13. set(CPACK_OUTPUT_FILE_PREFIX "../install")
  14. set(CPACK_COMPONENTS_ALL main library headers doc)
  15. set(CPACK_COMPONENT_MAIN_GROUP "Runtime")
  16. set(CPACK_COMPONENT_DOC_GROUP "Runtime")
  17. set(CPACK_COMPONENT_LIBRARY_GROUP "Development")
  18. set(CPACK_COMPONENT_HEADERS_GROUP "Development")
  19. set(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION
  20. "All of the stuff you'll never need to develop software"
  21. )
  22. set(CPACK_COMPONENT_GROUP_RUNTIME_DESCRIPTION
  23. "The main application"
  24. )
  25. if(WIN32 AND NOT UNIX)
  26. ### nsis generator
  27. set(CPACK_GENERATOR "NSIS")
  28. set(CPACK_NSIS_DISPLAY_NAME "${APPLICATION_NAME}")
  29. set(CPACK_NSIS_COMPRESSOR "/SOLID zlib")
  30. set(CPACK_NSIS_CONTACT "estermann.michel@gmail.com")
  31. set(CPACK_NSIS_HELP_LINK "https://github.com/meshell/Cpp_CMake_project_template")
  32. set(CPACK_NSIS_URL_INFO_ABOUT "https://github.com/meshell/Cpp_CMake_project_template")
  33. set(CPACK_NSIS_CREATE_ICONS "
  34. SetOutPath \\\"$INSTDIR\\\\bin\\\"
  35. CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\C++Template.lnk\\\" \\\"$INSTDIR\\\\doc\\\\html\\\\index.html\\\"
  36. CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\License.lnk\\\" \\\"$INSTDIR\\\\doc\\\\LICENSE.txt\\\"
  37. CreateShortCut \\\"$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\README.lnk\\\" \\\"$INSTDIR\\\\doc\\\\README.md\\\"
  38. ")
  39. set(CPACK_NSIS_DELETE_ICONS "
  40. Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\C++Template.lnk\\\"
  41. Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\License.lnk\\\"
  42. Delete \\\"$SMPROGRAMS\\\\$MUI_TEMP\\\\README.lnk\\\"
  43. ")
  44. set(CPACK_NSIS_MENU_LINKS "doc/html/index.html" "Documentation")
  45. else(WIN32 AND NOT UNIX)
  46. # Determine current architecture
  47. macro(dpkg_arch VAR_NAME)
  48. find_program(DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems")
  49. if (DPKG_PROGRAM)
  50. execute_process(
  51. COMMAND ${DPKG_PROGRAM} --print-architecture
  52. OUTPUT_VARIABLE ${VAR_NAME}
  53. OUTPUT_STRIP_TRAILING_WHITESPACE
  54. )
  55. endif(DPKG_PROGRAM)
  56. endmacro(dpkg_arch)
  57. # DEB package config
  58. set(CPACK_DEBIAN_PACKAGE_NAME ${LOWER_CASE_PROJECT_NAME})
  59. set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Michel Estermann <estermann.michel@gmail.com>")
  60. set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/meshell/Cpp_CMake_project_template")
  61. #set(CPACK_DEBIAN_PACKAGE_SECTION "")
  62. #set(CPACK_DEBIAN_PACKAGE_DEPENDS "")
  63. set(CPACK_GENERATOR "DEB")
  64. set(CPACK_SET_DESTDIR true)
  65. set(CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
  66. dpkg_arch(CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
  67. if (CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
  68. set(CPACK_PACKAGE_FILE_NAME ${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
  69. else (CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
  70. set(CPACK_PACKAGE_FILE_NAME ${CPACK_DEBIAN_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CMAKE_SYSTEM_NAME})
  71. endif (CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
  72. endif (WIN32 AND NOT UNIX)
  73. include(CPack)
  74. include(InstallRequiredSystemLibraries)