diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-12-12 03:13:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-12 03:13:11 +0100 |
commit | 1505f63763a8c7b349d589644f16fc425b2469ad (patch) | |
tree | fe0376002c3b0de629185757ddb66807ac94df53 /CMakeLists.txt | |
parent | 18f698dffece85b0897c62f65020704ef2c2aeef (diff) | |
parent | 8a6e2b23d63eaf8de6e2061aa920b60bea34841d (diff) |
Merge pull request #3426 from daschuer/debian_ppa
CPack Debian PPA Build
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 101 |
1 files changed, 81 insertions, 20 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 47e08aa713..c80d1386d7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1204,13 +1204,26 @@ install( "*.qm" ) + # Font files -install( - DIRECTORY - "${CMAKE_CURRENT_SOURCE_DIR}/res/fonts" - DESTINATION - "${MIXXX_INSTALL_DATADIR}" -) +if(UNIX AND NOT APPLE) + # Ubuntu and OpenSans are already installed by package manager + install( + DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}/res/fonts" + DESTINATION + "${MIXXX_INSTALL_DATADIR}" + PATTERN "OpenSans*" EXCLUDE + PATTERN "Ubuntu*" EXCLUDE + ) +else() + install( + DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}/res/fonts" + DESTINATION + "${MIXXX_INSTALL_DATADIR}" + ) +endif() # Keyboard mapping(s) install( @@ -1269,16 +1282,29 @@ if(UNIX AND NOT APPLE) FILES "${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.appdata.xml" DESTINATION - "${CMAKE_INSTALL_DATADIR}/appdata" + "${CMAKE_INSTALL_DATAROOTDIR}/metainfo" ) - # udev rule file for USB HID and Bulk controllers - install( - FILES - "${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx-usb-uaccess.rules" - DESTINATION - "${CMAKE_INSTALL_SYSCONFDIR}/udev/rules.d" - ) + option(INSTALL_USER_UDEV_RULES "Install user udev rule file for USB HID and Bulk controllers" ON) + if (INSTALL_USER_UDEV_RULES) + install( + FILES + "${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx-usb-uaccess.rules" + DESTINATION + "${CMAKE_INSTALL_SYSCONFDIR}/udev/rules.d" + ) + message(WARNING + " The udev rule file for USB HID and Bulk controller permissions will\n" + " be installed to: ${CMAKE_INSTALL_SYSCONFDIR}/udev/rules.d.\n" + " If you are installing Mixxx from source for your own use, copy\n" + " mixxx-usb-uaccess.rules to /etc/udev/rules.d/ and run:\n" + " udevadm control --reload-rules && udevadm trigger\n" + " as root to load the rules.\n" + " If you are building a package for a distribution, the correct\n" + " directory for system rules is /lib/udev/rules.d with an appropriate\n" + " priority prefix. Adjust your package script accordingly and set\n" + " -DINSTALL_USER_UDEV_RULES=OFF") + endif() endif() # @@ -1487,13 +1513,15 @@ else() endif() add_dependencies(mixxx-lib mixxx-res mixxx-script) +file(READ src/_version.h MIXXX_VERSION_FILECONTENT) +string(REGEX REPLACE "^.*#define MIXXX_VERSION \"(.*)\".*$" "\\1" MIXXX_VERSION "${MIXXX_VERSION_FILECONTENT}") +# a dummy configure to force a reconfigure when the version changes +configure_file(src/_version.h src/_version.h) + # Windows-only resource file if(WIN32) string(TIMESTAMP MIXXX_YEAR "%Y") - file(READ src/_version.h MIXXX_VERSION_FILECONTENT) - string(REGEX REPLACE "^.*#define MIXXX_VERSION \"(.*)\".*$" "\\1" MIXXX_VERSION "${MIXXX_VERSION_FILECONTENT}") - # Remove anything after ~ or - in the version number and replace the dots with commas string(REGEX REPLACE "^([^~-]+).*$" "\\1" MIXXX_FILEVERSION "${MIXXX_VERSION}") string(REPLACE "." "," MIXXX_FILEVERSION "${MIXXX_FILEVERSION}") @@ -2508,7 +2536,8 @@ endif() # Packaging set(CPACK_PACKAGE_VENDOR "Mixxx Project") set(CPACK_PACKAGE_CONTACT "RJ Skerry-Ryan <rryan@mixxx.org>") -set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cpack_package_description.txt") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Digital DJ Application") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackPackageDescription.txt") set(CPACK_PACKAGE_INSTALL_DIRECTORY "Mixxx") set(CPACK_PACKAGE_EXECUTABLES "mixxx;Mixxx") set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/res/images/mixxx_install_logo.bmp") @@ -2520,12 +2549,42 @@ set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README") set(CPACK_STRIP_FILES ON) set(CPACK_CREATE_DESKTOP_LINKS "mixxx") +set(CPACK_SOURCE_IGNORE_FILES "\\\\.#;/#;.*~;\\\\.o$") +list(APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.git/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.github/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "/cache/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "/.*_build/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.sconf_temp/") +list(APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_CURRENT_BINARY_DIR}/") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-Source") + set(CPACK_DEBIAN_PACKAGE_SECTION "sound") set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") -set(CPACK_DEBIAN_PACKAGE_SUGGESTS "pdf-viewer") +set(CPACK_DEBIAN_PACKAGE_SUGGESTS "pdf-viewer, pulseaudio-utils") set(CPACK_DEBIAN_PACKAGE_REPLACES "mixxx-data") -set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5opengl5, libqt5svg5, libqt5xml5, libqt5sql5, libqt5sql5-sqlite") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5sql5-sqlite, fonts-open-sans, fonts-ubuntu") set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "${CPACK_PACKAGE_HOMEPAGE_URL}") +file(READ ${CPACK_PACKAGE_DESCRIPTION_FILE} CPACK_DEBIAN_PACKAGE_DESCRIPTION) +set(CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED "${CPACK_DEBIAN_PACKAGE_DESCRIPTION}") +string(PREPEND CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}" "\n") +string(REPLACE "\n\n" "\n.\n" CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED "${CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED}") +string(REPLACE "\n" "\n " CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED "${CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED}") +if("3.16.0" VERSION_GREATER CMAKE_VERSION) + # This hack is no longer required with cpack version 3.16.3 + set(CPACK_PACKAGE_DESCRIPTION "${CPACK_DEBIAN_PACKAGE_DESCRIPTION_MERGED}") +endif() + +# The upstream version must not contain hyphen +string(REPLACE "-" "~" CPACK_DEBIAN_UPSTREAM_VERSION "${MIXXX_VERSION}") +set(CPACK_DEBIAN_DEBIAN_VERSION 0ubuntu1) +set(CPACK_DEBIAN_DEBIAN_VERSION_EXTRA "${GIT_BRANCH}~git${GIT_COMMIT_COUNT}") +string(REPLACE "_" "" CPACK_DEBIAN_DEBIAN_VERSION_EXTRA "${CPACK_DEBIAN_DEBIAN_VERSION_EXTRA}") +set(CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_DEBIAN_UPSTREAM_VERSION}-ppa1~${GIT_BRANCH}~git${GIT_COMMIT_COUNT}~bionic") +set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal groovy) +set(CPACK_DEBIAN_SOURCE_DIR ${CMAKE_SOURCE_DIR}) +set(CPACK_DEBIAN_UPLOAD_PPA_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackDebUploadPPA.cmake") + set(CPACK_WIX_UPGRADE_GUID "921DC99C-4DCF-478D-B950-50685CB9E6BE") set(CPACK_WIX_LICENSE_RTF "${CMAKE_CURRENT_SOURCE_DIR}/build/wix/LICENSE.rtf") @@ -2534,6 +2593,8 @@ set(CPACK_WIX_PROPERTY_ARPHELPLINK "${CPACK_PACKAGE_HOMEPAGE_URL}") set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/build/wix/images/banner.bmp") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/build/wix/images/dialog.bmp") +set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_SOURCE_DIR}/packaging/CPackConfig.cmake" ) + include(CPack) if(APPLE AND MACOS_BUNDLE) |