mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-26 08:08:24 -05:00
6e3f6e925d
Avoid generating empty / conflicting directory components for the installation root which is shared across components and (except for the degenerate case of an empty installer) will always be created implicitly.
128 lines
3.2 KiB
CMake
128 lines
3.2 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
|
|
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)
|
|
|
|
install(CODE "" COMPONENT "empty1")
|
|
install(CODE "" COMPONENT "empty2")
|
|
|
|
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")
|
|
|
|
if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64")
|
|
set(CPACK_WIX_ARCHITECTURE arm64)
|
|
set(CPACK_SYSTEM_NAME windows-arm64)
|
|
endif()
|
|
|
|
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)
|