summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJan Holthuis <jan.holthuis@ruhr-uni-bochum.de>2020-12-12 03:13:11 +0100
committerGitHub <noreply@github.com>2020-12-12 03:13:11 +0100
commit1505f63763a8c7b349d589644f16fc425b2469ad (patch)
treefe0376002c3b0de629185757ddb66807ac94df53 /CMakeLists.txt
parent18f698dffece85b0897c62f65020704ef2c2aeef (diff)
parent8a6e2b23d63eaf8de6e2061aa920b60bea34841d (diff)
Merge pull request #3426 from daschuer/debian_ppa
CPack Debian PPA Build
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt101
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)