summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorHarshit Maurya <hmaurya999@gmail.com>2020-04-12 05:25:56 +0530
committerHarshit Maurya <hmaurya999@gmail.com>2020-04-12 05:25:56 +0530
commit1da180d9e8149b17e06878a917ee3b09a45b2755 (patch)
tree4e046a042316114653eb346a048fba8d07367032 /CMakeLists.txt
parentc1920450d05fd7bdd91ab9fc22b4f5a5c9d3d67e (diff)
parent81a62fca5904697ae7d47158fb5c2a761428a7e2 (diff)
Merge branch 'master' into context-menu
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt146
1 files changed, 92 insertions, 54 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a33ba001d..58403e1e71 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -173,6 +173,9 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/analyzer/plugins/analyzersoundtouchbeats.cpp
src/analyzer/plugins/buffering_utils.cpp
src/analyzer/trackanalysisscheduler.cpp
+ src/audio/types.cpp
+ src/audio/signalinfo.cpp
+ src/audio/streaminfo.cpp
src/control/control.cpp
src/control/controlaudiotaperpot.cpp
src/control/controlbehavior.cpp
@@ -217,6 +220,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/controllers/keyboard/keyboardeventfilter.cpp
src/controllers/learningutils.cpp
src/controllers/midi/midicontroller.cpp
+ src/controllers/midi/midicontrollerpreset.cpp
src/controllers/midi/midicontrollerpresetfilehandler.cpp
src/controllers/midi/midienumerator.cpp
src/controllers/midi/midimessage.cpp
@@ -342,12 +346,14 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/library/banshee/bansheedbconnection.cpp
src/library/banshee/bansheefeature.cpp
src/library/banshee/bansheeplaylistmodel.cpp
+ src/library/basecoverartdelegate.cpp
src/library/baseexternallibraryfeature.cpp
src/library/baseexternalplaylistmodel.cpp
src/library/baseexternaltrackmodel.cpp
src/library/baseplaylistfeature.cpp
src/library/basesqltablemodel.cpp
src/library/basetrackcache.cpp
+ src/library/basetracktablemodel.cpp
src/library/bpmdelegate.cpp
src/library/browse/browsefeature.cpp
src/library/browse/browsetablemodel.cpp
@@ -559,7 +565,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/track/tracknumbers.cpp
src/track/trackrecord.cpp
src/track/trackref.cpp
- src/util/audiosignal.cpp
src/util/autohidpi.cpp
src/util/battery/battery.cpp
src/util/cache.cpp
@@ -843,123 +848,155 @@ target_link_libraries(mixxx PUBLIC mixxx-lib)
#
# Installation and Packaging
#
-include(GNUInstallDirs)
+set(MIXXX_INSTALL_BINDIR ".")
+set(MIXXX_INSTALL_DATADIR ".")
+set(MIXXX_INSTALL_DOCDIR ".")
+set(MIXXX_INSTALL_LICENSEDIR ".")
+if (UNIX)
+ include(GNUInstallDirs)
+ set(MIXXX_INSTALL_BINDIR "${CMAKE_INSTALL_BINDIR}")
+ set(MIXXX_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/mixxx")
+ set(MIXXX_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}/mixxx")
+ set(MIXXX_INSTALL_LICENSEDIR "${CMAKE_INSTALL_DATADIR}/licenses/mixxx")
+endif()
+
install(
TARGETS
mixxx
RUNTIME DESTINATION
- ${CMAKE_INSTALL_BINDIR}
+ "${MIXXX_INSTALL_BINDIR}"
)
# Skins
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/res/skins
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/skins"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${MIXXX_INSTALL_DATADIR}"
)
# Controller mappings
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/res/controllers
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/controllers"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${MIXXX_INSTALL_DATADIR}"
)
# Translation files
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/res/translations
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/translations"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${MIXXX_INSTALL_DATADIR}"
FILES_MATCHING PATTERN
"*.qm"
)
# Font files
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/res/fonts
- DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/fonts"
+ "DESTINATION"
+ "${MIXXX_INSTALL_DATADIR}"
)
# Keyboard mapping(s)
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/res/keyboard
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/keyboard"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${MIXXX_INSTALL_DATADIR}"
)
# QScriptEngine extensions
install(
DIRECTORY
- ${CMAKE_CURRENT_SOURCE_DIR}/script
+ "${CMAKE_CURRENT_SOURCE_DIR}/script"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/mixxx
+ "${MIXXX_INSTALL_DATADIR}"
)
# Licenses
install(
FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
- ${CMAKE_CURRENT_SOURCE_DIR}/COPYING
+ "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE"
+ "${CMAKE_CURRENT_SOURCE_DIR}/COPYING"
DESTINATION
- ${CMAKE_INSTALL_DATADIR}/licenses/mixxx
+ "${MIXXX_INSTALL_LICENSEDIR}"
)
# Documentation
install(
FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/README
- ${CMAKE_CURRENT_SOURCE_DIR}/Mixxx-Manual.pdf
+ "${CMAKE_CURRENT_SOURCE_DIR}/README"
+ "${CMAKE_CURRENT_SOURCE_DIR}/Mixxx-Manual.pdf"
DESTINATION
- ${CMAKE_INSTALL_DOCDIR}
+ "${MIXXX_INSTALL_DOCDIR}"
)
-# .desktop file for KDE/GNOME menu
-install(
- FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.desktop
- DESTINATION
- ${CMAKE_INSTALL_DATADIR}/applications
-)
+# Additional Linux-only files
+if(UNIX AND NOT APPLE)
+ # .desktop file for KDE/GNOME menu
+ install(
+ FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.desktop"
+ DESTINATION
+ "${CMAKE_INSTALL_DATADIR}/applications"
+ )
-# Icon file for menu entry
-install(
- FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/res/images/mixxx_icon.svg
- DESTINATION
- ${CMAKE_INSTALL_DATADIR}/pixmaps
-)
+ # Icon file for menu entry
+ install(
+ FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/images/mixxx_icon.svg"
+ DESTINATION
+ "${CMAKE_INSTALL_DATADIR}/pixmaps"
+ )
-# .appdata.xml file for KDE/GNOME AppStream initiative
-install(
- FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.appdata.xml
- DESTINATION
- ${CMAKE_INSTALL_DATADIR}/appdata
-)
+ # .appdata.xml file for KDE/GNOME AppStream initiative
+ install(
+ FILES
+ "${CMAKE_CURRENT_SOURCE_DIR}/res/linux/mixxx.appdata.xml"
+ DESTINATION
+ "${CMAKE_INSTALL_DATADIR}/appdata"
+ )
-# 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
-)
+ # 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"
+ )
+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_INSTALL_DIRECTORY "Mixxx")
+set(CPACK_PACKAGE_EXECUTABLES "mixxx" "Mixxx")
+set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/res/images/mixxx_install_logo.bmp")
+set(CPACK_PACKAGE_HOMEPAGE_URL "https://www.mixxx.org/")
+
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
+set(CPACK_STRIP_FILES ON)
+set(CPACK_CREATE_DESKTOP_LINKS "mixxx")
+
set(CPACK_DEBIAN_PACKAGE_SECTION "sound")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "pdf-viewer")
set(CPACK_DEBIAN_PACKAGE_REPLACES "mixxx-data")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt5opengl5, libqt5svg5, libqt5xml5, libqt5sql5, libqt5sql5-sqlite")
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
+
+set(CPACK_WIX_UPGRADE_GUID "921DC99C-4DCF-478D-B950-50685CB9E6BE")
+set(CPACK_WIX_LICENSE_RTF "${CMAKE_CURRENT_SOURCE_DIR}/build/wix/LICENSE.rtf")
+set(CPACK_WIX_PRODUCT_ICON "${CMAKE_SOURCE_DIR}/res/images/ic_mixxx.ico")
+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")
+
include(CPack)
#
@@ -1978,22 +2015,23 @@ if(HID)
target_sources(mixxx-lib PRIVATE
src/controllers/hid/hidcontroller.cpp
src/controllers/hid/hidenumerator.cpp
+ src/controllers/hid/hidcontrollerpreset.cpp
src/controllers/hid/hidcontrollerpresetfilehandler.cpp
)
target_compile_definitions(mixxx-lib PUBLIC __HID__)
if(HIDAPI_STATIC)
message(STATUS "Linking internal libhidapi statically")
add_library(mixxx-hidapi STATIC EXCLUDE_FROM_ALL)
- target_include_directories(mixxx-hidapi SYSTEM PUBLIC lib/hidapi-0.8.0-rc1/hidapi)
+ target_include_directories(mixxx-hidapi SYSTEM PUBLIC lib/hidapi/hidapi)
if(WIN32)
- target_sources(mixxx-hidapi PRIVATE lib/hidapi-0.8.0-rc1/windows/hid.c)
+ target_sources(mixxx-hidapi PRIVATE lib/hidapi/windows/hid.c)
elseif(APPLE)
- target_sources(mixxx-hidapi PRIVATE lib/hidapi-0.8.0-rc1/mac/hid.c)
+ target_sources(mixxx-hidapi PRIVATE lib/hidapi/mac/hid.c)
elseif(UNIX)
if(NOT LibUSB_FOUND)
message(FATAL_ERROR "USB HID controller support on Unix with statically linked libhidapi-libusb requires libusb 1.0 and its development headers.")
endif()
- target_sources(mixxx-hidapi PRIVATE lib/hidapi-0.8.0-rc1/libusb/hid.c)
+ target_sources(mixxx-hidapi PRIVATE lib/hidapi/libusb/hid.c)
target_link_libraries(mixxx-hidapi PRIVATE LibUSB::LibUSB)
else()
message(FATAL_ERROR "USB HID controller support only possible on Windows/Mac OS/Linux/BSD.")