CMakeLists.txt 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. cmake_minimum_required(VERSION 3.5)
  2. project(CPackWiXGenerator)
  3. add_library(mylib mylib.cpp)
  4. add_executable(my-libapp mylibapp.cpp)
  5. target_link_libraries(my-libapp mylib)
  6. add_executable(my-other-app myotherapp.cpp)
  7. file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty)
  8. install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty
  9. DESTINATION extras
  10. COMPONENT extras)
  11. install(TARGETS mylib
  12. ARCHIVE
  13. DESTINATION lib
  14. COMPONENT libraries)
  15. install(TARGETS my-libapp
  16. RUNTIME
  17. DESTINATION bin
  18. COMPONENT applications)
  19. install(TARGETS my-other-app
  20. RUNTIME
  21. DESTINATION bin
  22. COMPONENT applications2)
  23. install(FILES mylib.h "file with spaces.h"
  24. DESTINATION include
  25. COMPONENT headers)
  26. set(CPACK_GENERATOR "WIX")
  27. set(CPACK_PACKAGE_NAME "MyLib")
  28. set(CPACK_PACKAGE_VENDOR "CMake.org")
  29. set(CPACK_PACKAGE_CONTACT "[email protected]")
  30. set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
  31. "MyLib - CPack Component Installation Example")
  32. set(CPACK_PACKAGE_VERSION_MAJOR "1")
  33. set(CPACK_PACKAGE_VERSION_MINOR "0")
  34. set(CPACK_PACKAGE_VERSION_PATCH "0")
  35. set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")
  36. set(CPACK_WIX_UPGRADE_GUID "BF20CE5E-7F7C-401D-8F7C-AB45E8D170E6")
  37. set(CPACK_WIX_UNINSTALL "1")
  38. # Support non-interactive sessions (like CI).
  39. set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-sval")
  40. set(CPACK_PACKAGE_EXECUTABLES
  41. "my-libapp" "CPack WiX Test"
  42. "my-other-app" "Second CPack WiX Test"
  43. )
  44. set(CPACK_CREATE_DESKTOP_LINKS
  45. "my-libapp"
  46. "my-other-app"
  47. )
  48. set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml")
  49. set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
  50. set(CPACK_WIX_PROPERTY_ARPCOMMENTS "My Custom ARPCOMMENTS")
  51. set(CPACK_WIX_PROPERTY_ARPHELPLINK "https://cmake.org")
  52. include(CPack)
  53. cpack_add_install_type(Full DISPLAY_NAME "Everything")
  54. cpack_add_install_type(Developer)
  55. cpack_add_component_group(Runtime)
  56. cpack_add_component_group(Development
  57. EXPANDED
  58. DESCRIPTION "All of the tools you'll ever need to develop software")
  59. cpack_add_component(extras
  60. DISPLAY_NAME "Extras"
  61. DESCRIPTION "Extras"
  62. GROUP Runtime
  63. INSTALL_TYPES Full)
  64. cpack_add_component(applications
  65. REQUIRED
  66. DISPLAY_NAME "MyLib Application"
  67. DESCRIPTION "An extremely useful application that makes use of MyLib"
  68. GROUP Runtime
  69. INSTALL_TYPES Full)
  70. cpack_add_component(applications2
  71. DISPLAY_NAME "MyLib Extra Application"
  72. DESCRIPTION "Another extremely useful application that makes use of MyLib"
  73. GROUP Runtime
  74. INSTALL_TYPES Full)
  75. cpack_add_component(documentation
  76. DISPLAY_NAME "MyLib Documentation"
  77. DESCRIPTION "The extensive suite of MyLib Application documentation files"
  78. GROUP Runtime
  79. INSTALL_TYPES Full)
  80. cpack_add_component(libraries
  81. DISPLAY_NAME "Libraries"
  82. DESCRIPTION "Static libraries used to build programs with MyLib"
  83. GROUP Development
  84. INSTALL_TYPES Developer Full)
  85. cpack_add_component(headers
  86. DISPLAY_NAME "C++ Headers"
  87. DESCRIPTION "C/C++ header files for use with MyLib"
  88. GROUP Development
  89. DEPENDS libraries
  90. INSTALL_TYPES Developer Full)