|
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
|
|
|
|
project(CPackWiXGenerator)
|
|
|
|
|
|
|
|
add_library(mylib mylib.cpp)
|
|
|
|
|
|
|
|
add_executable(my-libapp mylibapp.cpp)
|
|
|
|
target_link_libraries(my-libapp mylib)
|
|
|
|
|
|
|
|
add_executable(my-other-app myotherapp.cpp)
|
|
|
|
|
|
|
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty)
|
|
|
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/empty
|
|
|
|
DESTINATION extras
|
|
|
|
COMPONENT extras)
|
|
|
|
|
|
|
|
install(TARGETS mylib
|
|
|
|
ARCHIVE
|
|
|
|
DESTINATION lib
|
|
|
|
COMPONENT libraries)
|
|
|
|
|
|
|
|
install(TARGETS my-libapp
|
|
|
|
RUNTIME
|
|
|
|
DESTINATION bin
|
|
|
|
COMPONENT applications)
|
|
|
|
|
|
|
|
install(TARGETS my-other-app
|
|
|
|
RUNTIME
|
|
|
|
DESTINATION bin
|
|
|
|
COMPONENT applications2)
|
|
|
|
|
|
|
|
install(FILES mylib.h "file with spaces.h"
|
|
|
|
DESTINATION include
|
|
|
|
COMPONENT headers)
|
|
|
|
|
|
|
|
set(CPACK_GENERATOR "WIX")
|
|
|
|
|
|
|
|
set(CPACK_PACKAGE_NAME "MyLib")
|
|
|
|
set(CPACK_PACKAGE_VENDOR "CMake.org")
|
|
|
|
set(CPACK_PACKAGE_CONTACT "somebody@cmake.org")
|
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
|
|
|
"MyLib - CPack Component Installation Example")
|
|
|
|
|
|
|
|
set(CPACK_PACKAGE_VERSION_MAJOR "1")
|
|
|
|
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
|
|
|
set(CPACK_PACKAGE_VERSION_PATCH "0")
|
|
|
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")
|
|
|
|
|
|
|
|
set(CPACK_WIX_UPGRADE_GUID "BF20CE5E-7F7C-401D-8F7C-AB45E8D170E6")
|
|
|
|
set(CPACK_WIX_UNINSTALL "1")
|
|
|
|
|
|
|
|
# Support non-interactive sessions (like CI).
|
|
|
|
set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-sval")
|
|
|
|
|
|
|
|
set(CPACK_PACKAGE_EXECUTABLES
|
|
|
|
"my-libapp" "CPack WiX Test"
|
|
|
|
"my-other-app" "Second CPack WiX Test"
|
|
|
|
)
|
|
|
|
|
|
|
|
set(CPACK_CREATE_DESKTOP_LINKS
|
|
|
|
"my-libapp"
|
|
|
|
"my-other-app"
|
|
|
|
)
|
|
|
|
|
|
|
|
set(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/patch.xml")
|
|
|
|
|
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
|
|
|
|
|
|
|
|
set(CPACK_WIX_PROPERTY_ARPCOMMENTS "My Custom ARPCOMMENTS")
|
|
|
|
set(CPACK_WIX_PROPERTY_ARPHELPLINK "https://cmake.org")
|
|
|
|
|
|
|
|
include(CPack)
|
|
|
|
|
|
|
|
cpack_add_install_type(Full DISPLAY_NAME "Everything")
|
|
|
|
cpack_add_install_type(Developer)
|
|
|
|
|
|
|
|
cpack_add_component_group(Runtime)
|
|
|
|
|
|
|
|
cpack_add_component_group(Development
|
|
|
|
EXPANDED
|
|
|
|
DESCRIPTION "All of the tools you'll ever need to develop software")
|
|
|
|
|
|
|
|
cpack_add_component(extras
|
|
|
|
DISPLAY_NAME "Extras"
|
|
|
|
DESCRIPTION "Extras"
|
|
|
|
GROUP Runtime
|
|
|
|
INSTALL_TYPES Full)
|
|
|
|
|
|
|
|
cpack_add_component(applications
|
|
|
|
REQUIRED
|
|
|
|
DISPLAY_NAME "MyLib Application"
|
|
|
|
DESCRIPTION "An extremely useful application that makes use of MyLib"
|
|
|
|
GROUP Runtime
|
|
|
|
INSTALL_TYPES Full)
|
|
|
|
|
|
|
|
cpack_add_component(applications2
|
|
|
|
DISPLAY_NAME "MyLib Extra Application"
|
|
|
|
DESCRIPTION "Another extremely useful application that makes use of MyLib"
|
|
|
|
GROUP Runtime
|
|
|
|
INSTALL_TYPES Full)
|
|
|
|
|
|
|
|
cpack_add_component(documentation
|
|
|
|
DISPLAY_NAME "MyLib Documentation"
|
|
|
|
DESCRIPTION "The extensive suite of MyLib Application documentation files"
|
|
|
|
GROUP Runtime
|
|
|
|
INSTALL_TYPES Full)
|
|
|
|
|
|
|
|
cpack_add_component(libraries
|
|
|
|
DISPLAY_NAME "Libraries"
|
|
|
|
DESCRIPTION "Static libraries used to build programs with MyLib"
|
|
|
|
GROUP Development
|
|
|
|
INSTALL_TYPES Developer Full)
|
|
|
|
|
|
|
|
cpack_add_component(headers
|
|
|
|
DISPLAY_NAME "C++ Headers"
|
|
|
|
DESCRIPTION "C/C++ header files for use with MyLib"
|
|
|
|
GROUP Development
|
|
|
|
DEPENDS libraries
|
|
|
|
INSTALL_TYPES Developer Full)
|