diff options
author | Cristian Adam <cristian.adam@qt.io> | 2022-09-22 21:20:44 +0200 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2022-09-28 13:44:12 +0000 |
commit | 860d003a34e0c9b723146b2e77c923f09009597c (patch) | |
tree | 8c7bb5479078ee30cf0133c848124c690bf30355 /packaging | |
parent | 37db98db30564818c12323b5a7398d12c2d446f5 (diff) | |
download | qt-creator-860d003a34e0c9b723146b2e77c923f09009597c.tar.gz |
CMake: Add cpack packaging support
Tested on all desktop platforms like this:
* Windows with cpack -G NSIS64|WIX|IFW
* Ubuntu Linux with cpack -G DEB
* macOS with cpack -G DragNDrop
Fixes: QTCREATORBUG-28199
Change-Id: I5cd66aa387cc9677303ac3aece28eccb710d074f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'packaging')
-rw-r--r-- | packaging/CMakeLists.txt | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt new file mode 100644 index 0000000000..b84d271caa --- /dev/null +++ b/packaging/CMakeLists.txt @@ -0,0 +1,70 @@ +include(${CMAKE_CURRENT_LIST_DIR}/../cmake/QtCreatorIDEBranding.cmake) + +set(CPACK_PACKAGE_NAME ${IDE_CASED_ID}) +set(CPACK_PACKAGE_VENDOR "The Qt Company Ltd") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${IDE_DISPLAY_NAME}) +set(CPACK_PACKAGE_INSTALL_DIRECTORY ${IDE_ID}) +set(CPACK_VERBATIM_VARIABLES YES) + +#set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_LIST_DIR}/Description.txt) +#set(CPACK_RESOURCE_FILE_WELCOME ${CMAKE_CURRENT_LIST_DIR}/Welcome.txt) +#set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_LIST_DIR}/Readme.txt) + +# WIX needs a license file ending with .txt +file(COPY_FILE + ${CMAKE_CURRENT_LIST_DIR}/../LICENSE.GPL3-EXCEPT + ${CMAKE_CURRENT_BINARY_DIR}/LICENSE.GPL3-EXCEPT.txt + ONLY_IF_DIFFERENT) +set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_BINARY_DIR}/LICENSE.GPL3-EXCEPT.txt) + +set(CPACK_PACKAGE_CONTACT "None") +set(CPACK_THREADS 4) +set(CPACK_DEBIAN_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) +set(CPACK_DEBIAN_COMPRESSION_TYPE lzma) + +# Make CMAKE_INSTALL_DEFAULT_COMPONENT_NAME the first component to install +get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) +list(REMOVE_ITEM CPACK_COMPONENTS_ALL ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}) +list(REMOVE_ITEM CPACK_COMPONENTS_ALL libraries) # empty component, breaks WIX +list(PREPEND CPACK_COMPONENTS_ALL ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME}) + +set(CPACK_COMPONENT_Dependencies_HIDDEN TRUE) + +if (APPLE) + set(CPACK_INSTALL_PREFIX "/") +endif() + +if (WIN32) + set(CPACK_PACKAGE_INSTALL_DIRECTORY ${IDE_ID}-${CMAKE_PROJECT_VERSION}) +else() + set(CPACK_SET_DESTDIR ON) + set(CPACK_STRIP_FILES ON) + + if (NOT APPLE) + set(CPACK_INSTALL_CMAKE_PROJECTS + "${CMAKE_BINARY_DIR};${IDE_CASED_ID};ALL;/" + "${CMAKE_BINARY_DIR};Dependencies;Dependencies;/" + ) + endif() +endif() + +# NSIS-specific configuration +set(CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_LIST_DIR}/../src/app/qtcreator.ico") +set(CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_LIST_DIR}/../src/app/qtcreator.ico") +set(CPACK_NSIS_INSTALLED_ICON_NAME "${IDE_APP_PATH}\\${IDE_APP_TARGET}.exe") +set(CPACK_NSIS_DISPLAY_NAME "${IDE_DISPLAY_NAME} ${CMAKE_PROJECT_VERSION}") +set(CPACK_NSIS_PACKAGE_NAME "${IDE_DISPLAY_NAME} ${CMAKE_PROJECT_VERSION}") +set(CPACK_NSIS_COMPRESSOR "/SOLID lzma\n SetCompressorDictSize 64") +set(CPACK_NSIS_INSTALL_ROOT "C:\\Qt") +set(CPACK_NSIS_MUI_FINISHPAGE_RUN "${IDE_APP_TARGET}") +set(CPACK_NSIS_CREATE_ICONS_EXTRA + "CreateShortCut '$SMPROGRAMS\\$STARTMENU_FOLDER\\${IDE_DISPLAY_NAME} ${CMAKE_PROJECT_VERSION}.lnk' '$INSTDIR\\${IDE_APP_PATH}\\${IDE_APP_TARGET}.exe' " +) +set(CPACK_NSIS_MANIFEST_DPI_AWARE ON) + +# WIX-specific configuration +set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_LIST_DIR}/../src/app/qtcreator.ico") +set(CPACK_WIX_UPGRADE_GUID "E6A093A5-83DE-47FA-B669-1DE0102BE92A") +set(CPACK_WIX_LIGHT_EXTRA_FLAGS "-dcl:high") # set high compression + +include(CPack) |