Some checks failed
Build / Build openSUSE (leap:15.6) (push) Has been cancelled
Build / Build openSUSE (leap:16.0) (push) Has been cancelled
Build / Build openSUSE (tumbleweed) (push) Has been cancelled
Build / Build Fedora (42) (push) Has been cancelled
Build / Build Fedora (43) (push) Has been cancelled
Build / Build Fedora (44) (push) Has been cancelled
Build / Build OpenMandriva (cooker) (push) Has been cancelled
Build / Build Mageia (9) (push) Has been cancelled
Build / Build Debian (bookworm) (push) Has been cancelled
Build / Build Debian (forky) (push) Has been cancelled
Build / Build Debian (trixie) (push) Has been cancelled
Build / Build Ubuntu (noble) (push) Has been cancelled
Build / Build Ubuntu (questing) (push) Has been cancelled
Build / Build Ubuntu (resolute) (push) Has been cancelled
Build / Upload Ubuntu PPA (noble) (push) Has been cancelled
Build / Upload Ubuntu PPA (questing) (push) Has been cancelled
Build / Upload Ubuntu PPA (resolute) (push) Has been cancelled
Build / Build FreeBSD (push) Has been cancelled
Build / Build OpenBSD (push) Has been cancelled
Build / Build macOS Public (release, macos-15) (push) Has been cancelled
Build / Build macOS Public (release, macos-15-intel) (push) Has been cancelled
Build / Build macOS Private (release, macos-arm64) (push) Has been cancelled
Build / Build Windows MinGW (i686, debug) (push) Has been cancelled
Build / Build Windows MinGW (i686, release) (push) Has been cancelled
Build / Build Windows MinGW (x86_64, debug) (push) Has been cancelled
Build / Build Windows MinGW (x86_64, release) (push) Has been cancelled
Build / Build Windows MSVC (arm64, debug, arm64 debug, windows-11-arm) (push) Has been cancelled
Build / Build Windows MSVC (arm64, release, arm64 release, windows-11-arm) (push) Has been cancelled
Build / Build Windows MSVC (x86, debug, x86 debug, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86, release, x86 release, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86_64, debug, x86_64 debug, windows-2022) (push) Has been cancelled
Build / Build Windows MSVC (x86_64, release, x86_64 release, windows-2022) (push) Has been cancelled
Build / Upload (push) Has been cancelled
Build / Attach to release (push) Has been cancelled
This commit refines the CMake configuration for macOS by finding the Sparkle framework early in the build process, allowing it to be bundled with the application. The Dmg.cmake script is updated to handle Sparkle's framework paths and ensure proper deployment. Additionally, the build_sign_notarize.sh script is improved to sign Sparkle's helper executables correctly and includes enhanced notarization feedback. The Brewfile and install_brew_deps.sh are also updated to include the new macdeploycheck dependency for better deployment checks.
1637 lines
53 KiB
CMake
1637 lines
53 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
|
|
project(strawberry C CXX)
|
|
|
|
if(APPLE)
|
|
enable_language(OBJC OBJCXX)
|
|
endif()
|
|
|
|
if(POLICY CMP0054)
|
|
cmake_policy(SET CMP0054 NEW)
|
|
endif()
|
|
if(POLICY CMP0074)
|
|
cmake_policy(SET CMP0074 NEW)
|
|
endif()
|
|
|
|
include(CheckCXXCompilerFlag)
|
|
include(CheckCXXSourceRuns)
|
|
include(CheckIncludeFiles)
|
|
include(FindPkgConfig)
|
|
include(cmake/Version.cmake)
|
|
include(cmake/OptionalComponent.cmake)
|
|
include(cmake/OptionalSource.cmake)
|
|
include(cmake/ParseArguments.cmake)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set(LINUX ON)
|
|
endif()
|
|
|
|
if(LINUX)
|
|
include(cmake/Rpm.cmake)
|
|
include(cmake/Deb.cmake)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
# Find Sparkle early so cmake/Dmg.cmake (deploy target) can bundle it into the app.
|
|
# Sparkle is optional; if not found, update functionality is disabled.
|
|
find_library(SPARKLE Sparkle
|
|
PATHS
|
|
/Library/Frameworks
|
|
/System/Library/Frameworks
|
|
/opt/homebrew/Frameworks
|
|
/opt/homebrew/opt/sparkle-framework/Frameworks
|
|
/usr/local/Frameworks
|
|
/usr/local/opt/sparkle-framework/Frameworks
|
|
PATH_SUFFIXES Frameworks
|
|
)
|
|
include(cmake/Dmg.cmake)
|
|
endif()
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
|
|
|
if(CMAKE_BUILD_TYPE MATCHES "Release")
|
|
add_definitions(-DNDEBUG)
|
|
set(ENABLE_DEBUG_OUTPUT_DEFAULT OFF)
|
|
else()
|
|
set(ENABLE_DEBUG_OUTPUT_DEFAULT ON)
|
|
endif()
|
|
|
|
if(APPLE OR WIN32)
|
|
set(USE_BUNDLE_DEFAULT ON)
|
|
else()
|
|
set(USE_BUNDLE_DEFAULT OFF)
|
|
endif()
|
|
|
|
if(WIN32)
|
|
if(CMAKE_BUILD_TYPE MATCHES "Release")
|
|
set(ENABLE_WIN32_CONSOLE_DEFAULT OFF)
|
|
else()
|
|
set(ENABLE_WIN32_CONSOLE_DEFAULT ON)
|
|
endif()
|
|
endif()
|
|
|
|
option(BUILD_WERROR "Build with -Werror" OFF)
|
|
option(USE_RPATH "Use RPATH" APPLE)
|
|
option(USE_INSTALL_PREFIX "Look for data in CMAKE_INSTALL_PREFIX" ON)
|
|
option(INSTALL_TRANSLATIONS "Install translations" OFF)
|
|
option(ENABLE_DEBUG_OUTPUT "Enable debug output" ${ENABLE_DEBUG_OUTPUT_DEFAULT})
|
|
option(USE_BUNDLE "Bundle dependencies" ${USE_BUNDLE_DEFAULT})
|
|
|
|
if(WIN32)
|
|
option(ENABLE_WIN32_CONSOLE "Show the windows console even outside Debug mode" ${ENABLE_WIN32_CONSOLE_DEFAULT})
|
|
endif()
|
|
|
|
if(MSVC)
|
|
set(CMAKE_C_STANDARD 99)
|
|
else()
|
|
set(CMAKE_C_STANDARD 11)
|
|
endif()
|
|
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(MSVC)
|
|
list(APPEND COMPILE_OPTIONS -MP -W4 -wd4702)
|
|
else()
|
|
list(APPEND COMPILE_OPTIONS
|
|
-Wall
|
|
-Wextra
|
|
-Wpedantic
|
|
-Wunused
|
|
-Wshadow
|
|
-Wundef
|
|
-Wuninitialized
|
|
-Wredundant-decls
|
|
-Wcast-align
|
|
-Winit-self
|
|
-Wmissing-include-dirs
|
|
-Wmissing-declarations
|
|
-Wstrict-overflow=2
|
|
-Wunused-parameter
|
|
-Wformat=2
|
|
-Wdisabled-optimization
|
|
$<$<COMPILE_LANGUAGE:CXX>:-Woverloaded-virtual>
|
|
$<$<COMPILE_LANGUAGE:CXX>:-Wold-style-cast>
|
|
)
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
list(APPEND COMPILE_OPTIONS -Wno-unused-command-line-argument)
|
|
endif()
|
|
endif()
|
|
|
|
add_compile_options(${COMPILE_OPTIONS})
|
|
|
|
add_definitions(
|
|
-DBOOST_BIND_NO_PLACEHOLDERS
|
|
-DQT_STRICT_ITERATORS
|
|
-DQT_NO_CAST_FROM_BYTEARRAY
|
|
-DQT_USE_QSTRINGBUILDER
|
|
-DQT_NO_URL_CAST_FROM_STRING
|
|
-DQT_NO_CAST_TO_ASCII
|
|
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
|
|
-DQT_NO_FOREACH
|
|
-DQT_ASCII_CAST_WARNINGS
|
|
-DQT_NO_CAST_FROM_ASCII
|
|
-DQT_NO_KEYWORDS
|
|
-DQT_NO_SIGNALS_SLOTS_KEYWORDS
|
|
)
|
|
|
|
if(WIN32)
|
|
add_definitions(
|
|
-DUNICODE
|
|
-DNOMINMAX
|
|
)
|
|
endif()
|
|
|
|
if(BUILD_WERROR)
|
|
set(CMAKE_COMPILE_WARNING_AS_ERROR ON)
|
|
endif()
|
|
|
|
if(NOT ENABLE_DEBUG_OUTPUT)
|
|
add_definitions(-DQT_NO_DEBUG_OUTPUT)
|
|
endif()
|
|
|
|
if(USE_RPATH)
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
endif()
|
|
|
|
find_program(CCACHE_EXECUTABLE NAMES ccache)
|
|
if(CCACHE_EXECUTABLE)
|
|
message(STATUS "ccache found: will be used for compilation and linkage")
|
|
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE_EXECUTABLE})
|
|
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE_EXECUTABLE})
|
|
endif()
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
find_package(Threads REQUIRED)
|
|
find_package(Backtrace)
|
|
if(Backtrace_FOUND)
|
|
set(HAVE_BACKTRACE ON)
|
|
endif()
|
|
find_package(Boost CONFIG)
|
|
if(NOT Boost_FOUND)
|
|
find_package(Boost REQUIRED)
|
|
endif()
|
|
find_package(ICU COMPONENTS uc i18n REQUIRED)
|
|
if(UNIX AND NOT APPLE)
|
|
if(LINUX)
|
|
find_package(ALSA REQUIRED)
|
|
else()
|
|
find_package(ALSA)
|
|
endif()
|
|
find_package(X11 COMPONENTS X11_xcb)
|
|
endif()
|
|
pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0)
|
|
pkg_check_modules(GOBJECT REQUIRED IMPORTED_TARGET gobject-2.0)
|
|
if(NOT APPLE)
|
|
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
|
|
if(GIO_FOUND AND UNIX)
|
|
pkg_check_modules(GIO_UNIX IMPORTED_TARGET gio-unix-2.0)
|
|
endif()
|
|
endif()
|
|
pkg_check_modules(LIBCDIO IMPORTED_TARGET libcdio)
|
|
pkg_check_modules(GSTREAMER REQUIRED IMPORTED_TARGET gstreamer-1.0)
|
|
pkg_check_modules(GSTREAMER_BASE REQUIRED IMPORTED_TARGET gstreamer-base-1.0)
|
|
pkg_check_modules(GSTREAMER_AUDIO REQUIRED IMPORTED_TARGET gstreamer-audio-1.0)
|
|
pkg_check_modules(GSTREAMER_APP REQUIRED IMPORTED_TARGET gstreamer-app-1.0)
|
|
pkg_check_modules(GSTREAMER_TAG REQUIRED IMPORTED_TARGET gstreamer-tag-1.0)
|
|
pkg_check_modules(GSTREAMER_PBUTILS REQUIRED IMPORTED_TARGET gstreamer-pbutils-1.0)
|
|
pkg_check_modules(SQLITE REQUIRED IMPORTED_TARGET sqlite3>=3.9)
|
|
if(UNIX AND NOT APPLE)
|
|
pkg_check_modules(LIBPULSE IMPORTED_TARGET libpulse)
|
|
endif()
|
|
pkg_check_modules(CHROMAPRINT IMPORTED_TARGET libchromaprint>=1.4)
|
|
pkg_check_modules(FFTW3 IMPORTED_TARGET fftw3)
|
|
pkg_check_modules(LIBEBUR128 IMPORTED_TARGET libebur128)
|
|
pkg_check_modules(LIBGPOD IMPORTED_TARGET libgpod-1.0>=0.7.92)
|
|
pkg_check_modules(LIBMTP IMPORTED_TARGET libmtp>=1.0)
|
|
pkg_check_modules(GDK_PIXBUF IMPORTED_TARGET gdk-pixbuf-2.0)
|
|
|
|
find_package(TagLib 2.0)
|
|
if(TARGET TagLib::TagLib)
|
|
set(TAGLIB_FOUND ON)
|
|
set(TAGLIB_LIBRARIES TagLib::TagLib)
|
|
set(HAVE_TAGLIB_DSFFILE ON)
|
|
set(HAVE_TAGLIB_DSDIFFFILE ON)
|
|
else()
|
|
pkg_check_modules(TAGLIB REQUIRED IMPORTED_TARGET taglib>=1.12)
|
|
endif()
|
|
|
|
find_package(GTest)
|
|
|
|
pkg_check_modules(LIBSPARSEHASH IMPORTED_TARGET libsparsehash)
|
|
|
|
find_package(RapidJSON)
|
|
|
|
set(QT_VERSION_MAJOR 6)
|
|
set(QT_MIN_VERSION 6.4.0)
|
|
set(QT_DEFAULT_MAJOR_VERSION ${QT_VERSION_MAJOR})
|
|
set(QT_COMPONENTS Core Concurrent Gui Widgets Network Sql)
|
|
set(QT_OPTIONAL_COMPONENTS GuiPrivate LinguistTools Test)
|
|
if(UNIX AND NOT APPLE)
|
|
list(APPEND QT_OPTIONAL_COMPONENTS DBus)
|
|
endif()
|
|
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
|
|
|
find_package(Qt${QT_VERSION_MAJOR} ${QT_MIN_VERSION} COMPONENTS ${QT_COMPONENTS} REQUIRED OPTIONAL_COMPONENTS ${QT_OPTIONAL_COMPONENTS})
|
|
|
|
if(TARGET "Qt${QT_VERSION_MAJOR}::GuiPrivate")
|
|
set(QT_GUI_PRIVATE_FOUND ON)
|
|
endif()
|
|
|
|
if(Qt${QT_VERSION_MAJOR}DBus_FOUND)
|
|
set(DBUS_FOUND ON)
|
|
endif()
|
|
|
|
if(X11_FOUND)
|
|
# Check for QX11Application (Qt 6 compiled with XCB).
|
|
set(CMAKE_REQUIRED_FLAGS "-std=c++17")
|
|
set(CMAKE_REQUIRED_LIBRARIES Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui)
|
|
check_cxx_source_compiles("
|
|
#include <QGuiApplication>
|
|
int main() {
|
|
(void)qApp->nativeInterface<QNativeInterface::QX11Application>();
|
|
return 0;
|
|
}
|
|
"
|
|
HAVE_QX11APPLICATION
|
|
)
|
|
unset(CMAKE_REQUIRED_FLAGS)
|
|
unset(CMAKE_REQUIRED_LIBRARIES)
|
|
endif()
|
|
|
|
find_package(KDSingleApplication-qt${QT_VERSION_MAJOR} 1.1.0 REQUIRED)
|
|
|
|
if(WIN32)
|
|
find_package(getopt NAMES getopt getopt-win unofficial-getopt-win32 REQUIRED)
|
|
if(TARGET getopt::getopt)
|
|
set(GETOPT_LIBRARIES getopt::getopt)
|
|
elseif(TARGET getopt-win::getopt)
|
|
set(GETOPT_LIBRARIES getopt-win::getopt)
|
|
elseif(TARGET getopt::getopt_shared)
|
|
set(GETOPT_LIBRARIES getopt::getopt_shared)
|
|
elseif(TARGET unofficial::getopt-win32::getopt)
|
|
set(GETOPT_LIBRARIES unofficial::getopt-win32::getopt)
|
|
else()
|
|
message(FATAL_ERROR "Missing getopt")
|
|
endif()
|
|
endif()
|
|
|
|
if(APPLE OR WIN32)
|
|
find_package(qtsparkle-qt${QT_VERSION_MAJOR} QUIET)
|
|
if(TARGET "qtsparkle-qt${QT_VERSION_MAJOR}::qtsparkle")
|
|
set(QTSPARKLE_FOUND ON)
|
|
endif()
|
|
endif()
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
optional_component(ALSA ON "ALSA integration"
|
|
DEPENDS "alsa" ALSA_FOUND
|
|
)
|
|
optional_component(PULSE ON "PulseAudio integration"
|
|
DEPENDS "libpulse" LIBPULSE_FOUND
|
|
)
|
|
optional_component(DBUS ON "D-Bus support"
|
|
DEPENDS "Qt D-Bus" DBUS_FOUND
|
|
)
|
|
optional_component(MPRIS2 ON "MPRIS2 D-Bus Interface"
|
|
DEPENDS "D-Bus support" HAVE_DBUS
|
|
)
|
|
endif()
|
|
|
|
optional_component(SONGFINGERPRINTING ON "Song fingerprinting and tracking"
|
|
DEPENDS "chromaprint" CHROMAPRINT_FOUND
|
|
)
|
|
|
|
optional_component(MUSICBRAINZ ON "MusicBrainz integration"
|
|
DEPENDS "chromaprint" CHROMAPRINT_FOUND
|
|
)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
optional_component(X11_GLOBALSHORTCUTS ON "X11 global shortcuts"
|
|
DEPENDS "X11" X11_FOUND
|
|
DEPENDS "QX11Application" HAVE_QX11APPLICATION
|
|
)
|
|
optional_component(KGLOBALACCEL_GLOBALSHORTCUTS ON "KGlobalAccel global shortcuts"
|
|
DEPENDS "D-Bus support" HAVE_DBUS
|
|
)
|
|
optional_component(UDISKS2 ON "Devices: UDisks2 backend"
|
|
DEPENDS "D-Bus support" HAVE_DBUS
|
|
)
|
|
endif()
|
|
|
|
if(NOT APPLE)
|
|
optional_component(GIO ON "Devices: GIO device backend"
|
|
DEPENDS "libgio" GIO_FOUND
|
|
)
|
|
if(UNIX)
|
|
optional_component(GIO_UNIX ON "Devices: GIO device backend (Unix support)"
|
|
DEPENDS "libgio-unix" GIO_UNIX_FOUND
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
optional_component(AUDIOCD ON "Devices: Audio CD support"
|
|
DEPENDS "libcdio" LIBCDIO_FOUND
|
|
)
|
|
|
|
optional_component(MTP ON "Devices: MTP support"
|
|
DEPENDS "libmtp" LIBMTP_FOUND
|
|
)
|
|
|
|
optional_component(GPOD ON "Devices: iPod classic support"
|
|
DEPENDS "libgpod" LIBGPOD_FOUND
|
|
DEPENDS "gdk-pixbuf" GDK_PIXBUF_FOUND
|
|
)
|
|
|
|
optional_component(TRANSLATIONS ON "Translations"
|
|
DEPENDS "Qt LinguistTools" Qt${QT_VERSION_MAJOR}LinguistTools_FOUND
|
|
)
|
|
|
|
optional_component(SUBSONIC ON "Streaming: Subsonic")
|
|
optional_component(TIDAL ON "Streaming: Tidal")
|
|
optional_component(SPOTIFY ON "Streaming: Spotify")
|
|
optional_component(QOBUZ ON "Streaming: Qobuz")
|
|
|
|
optional_component(MOODBAR ON "Moodbar"
|
|
DEPENDS "fftw3" FFTW3_FOUND
|
|
)
|
|
|
|
optional_component(EBUR128 ON "EBU R 128 loudness normalization"
|
|
DEPENDS "libebur128" LIBEBUR128_FOUND
|
|
)
|
|
|
|
if(APPLE)
|
|
optional_component(SPARKLE ON "Sparkle integration"
|
|
DEPENDS "Sparkle" SPARKLE
|
|
)
|
|
endif()
|
|
|
|
if(APPLE OR WIN32)
|
|
optional_component(QTSPARKLE ON "QtSparkle integration"
|
|
DEPENDS "QtSparkle" QTSPARKLE_FOUND
|
|
)
|
|
endif()
|
|
|
|
optional_component(QPA_QPLATFORMNATIVEINTERFACE ON "QPA Platform Native Interface"
|
|
DEPENDS "Qt Gui Private" QT_GUI_PRIVATE_FOUND
|
|
)
|
|
|
|
optional_component(STREAMTAGREADER ON "Stream tagreader"
|
|
DEPENDS "sparsehash" LIBSPARSEHASH_FOUND
|
|
)
|
|
|
|
optional_component(DISCORD_RPC ON "Discord Rich Presence"
|
|
DEPENDS "RapidJSON" RapidJSON_FOUND
|
|
)
|
|
|
|
if(HAVE_SONGFINGERPRINTING OR HAVE_MUSICBRAINZ)
|
|
set(HAVE_CHROMAPRINT ON)
|
|
endif()
|
|
|
|
if(HAVE_X11_GLOBALSHORTCUTS OR HAVE_KGLOBALACCEL_GLOBALSHORTCUTS OR APPLE OR WIN32)
|
|
set(HAVE_GLOBALSHORTCUTS ON)
|
|
endif()
|
|
|
|
if(NOT CMAKE_CROSSCOMPILING)
|
|
# Check that we have Qt with sqlite driver
|
|
set(CMAKE_REQUIRED_FLAGS "-std=c++17")
|
|
set(CMAKE_REQUIRED_LIBRARIES Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Sql)
|
|
check_cxx_source_runs("
|
|
#include <QCoreApplication>
|
|
#include <QSqlDatabase>
|
|
#include <QSqlQuery>
|
|
int main(int argc, char *argv[]) {
|
|
QCoreApplication app(argc, argv);
|
|
QSqlDatabase db = QSqlDatabase::addDatabase(\"QSQLITE\");
|
|
db.setDatabaseName(\":memory:\");
|
|
if (!db.open()) { return 1; }
|
|
QSqlQuery q(db);
|
|
q.prepare(\"CREATE TABLE test (test TEXT);\");
|
|
if (!q.exec()) return 1;
|
|
}
|
|
"
|
|
QT_SQLITE_TEST
|
|
)
|
|
endif()
|
|
|
|
add_executable(strawberry)
|
|
|
|
if(APPLE)
|
|
set_target_properties(strawberry PROPERTIES MACOSX_BUNDLE TRUE)
|
|
set_target_properties(strawberry PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/dist/macos/Info.plist")
|
|
endif()
|
|
|
|
if(WIN32 AND NOT ENABLE_WIN32_CONSOLE)
|
|
set_target_properties(strawberry PROPERTIES WIN32_EXECUTABLE TRUE)
|
|
endif()
|
|
|
|
set(SOURCES
|
|
src/core/logging.cpp
|
|
src/core/mainwindow.cpp
|
|
src/core/application.cpp
|
|
src/core/playerinterface.cpp
|
|
src/core/player.cpp
|
|
src/core/commandlineoptions.cpp
|
|
src/core/database.cpp
|
|
src/core/memorydatabase.cpp
|
|
src/core/sqlquery.cpp
|
|
src/core/sqlrow.cpp
|
|
src/core/metatypes.cpp
|
|
src/core/deletefiles.cpp
|
|
src/core/filesystemmusicstorage.cpp
|
|
src/core/filesystemwatcherinterface.cpp
|
|
src/core/mergedproxymodel.cpp
|
|
src/core/multisortfilterproxy.cpp
|
|
src/core/musicstorage.cpp
|
|
src/core/networkaccessmanager.cpp
|
|
src/core/threadsafenetworkdiskcache.cpp
|
|
src/core/networktimeouts.cpp
|
|
src/core/networkproxyfactory.cpp
|
|
src/core/qtfslistener.cpp
|
|
src/core/settings.cpp
|
|
src/core/settingsprovider.cpp
|
|
src/core/signalchecker.cpp
|
|
src/core/song.cpp
|
|
src/core/songloader.cpp
|
|
src/core/stylehelper.cpp
|
|
src/core/stylesheetloader.cpp
|
|
src/core/taskmanager.cpp
|
|
src/core/thread.cpp
|
|
src/core/urlhandler.cpp
|
|
src/core/urlhandlers.cpp
|
|
src/core/iconloader.cpp
|
|
src/core/standarditemiconloader.cpp
|
|
src/core/scopedtransaction.cpp
|
|
src/core/translations.cpp
|
|
src/core/localredirectserver.cpp
|
|
src/core/mimedata.cpp
|
|
src/core/temporaryfile.cpp
|
|
src/core/enginemetadata.cpp
|
|
src/core/songmimedata.cpp
|
|
src/core/platforminterface.cpp
|
|
src/core/standardpaths.cpp
|
|
src/core/httpbaserequest.cpp
|
|
src/core/jsonbaserequest.cpp
|
|
src/core/oauthenticator.cpp
|
|
|
|
src/utilities/strutils.cpp
|
|
src/utilities/envutils.cpp
|
|
src/utilities/colorutils.cpp
|
|
src/utilities/cryptutils.cpp
|
|
src/utilities/fileutils.cpp
|
|
src/utilities/diskutils.cpp
|
|
src/utilities/imageutils.cpp
|
|
src/utilities/macaddrutils.cpp
|
|
src/utilities/mimeutils.cpp
|
|
src/utilities/randutils.cpp
|
|
src/utilities/threadutils.cpp
|
|
src/utilities/timeutils.cpp
|
|
src/utilities/transliterate.cpp
|
|
src/utilities/xmlutils.cpp
|
|
src/utilities/filemanagerutils.cpp
|
|
src/utilities/coverutils.cpp
|
|
src/utilities/screenutils.cpp
|
|
src/utilities/textencodingutils.cpp
|
|
src/utilities/coveroptions.cpp
|
|
src/utilities/musixmatchprovider.cpp
|
|
|
|
src/tagreader/tagreaderclient.cpp
|
|
src/tagreader/tagreaderresult.cpp
|
|
src/tagreader/tagreaderbase.cpp
|
|
src/tagreader/tagreadertaglib.cpp
|
|
src/tagreader/tagreadergme.cpp
|
|
src/tagreader/tagreaderrequest.cpp
|
|
src/tagreader/tagreaderismediafilerequest.cpp
|
|
src/tagreader/tagreaderreadfilerequest.cpp
|
|
src/tagreader/tagreaderwritefilerequest.cpp
|
|
src/tagreader/tagreaderloadcoverdatarequest.cpp
|
|
src/tagreader/tagreaderloadcoverimagerequest.cpp
|
|
src/tagreader/tagreadersavecoverrequest.cpp
|
|
src/tagreader/tagreadersaveplaycountrequest.cpp
|
|
src/tagreader/tagreadersaveratingrequest.cpp
|
|
src/tagreader/albumcovertagdata.cpp
|
|
src/tagreader/savetagcoverdata.cpp
|
|
src/tagreader/tagreaderreply.cpp
|
|
src/tagreader/tagreaderreadfilereply.cpp
|
|
src/tagreader/tagreaderloadcoverdatareply.cpp
|
|
src/tagreader/tagreaderloadcoverimagereply.cpp
|
|
|
|
src/filterparser/filterparser.cpp
|
|
src/filterparser/filtertree.cpp
|
|
src/filterparser/filtertreeand.cpp
|
|
src/filterparser/filtertreecolumnterm.cpp
|
|
src/filterparser/filtertreenop.cpp
|
|
src/filterparser/filtertreenot.cpp
|
|
src/filterparser/filtertreeor.cpp
|
|
src/filterparser/filtertreeterm.cpp
|
|
src/filterparser/filterparserfloateqcomparator.cpp
|
|
src/filterparser/filterparserfloatgecomparator.cpp
|
|
src/filterparser/filterparserfloatgtcomparator.cpp
|
|
src/filterparser/filterparserfloatlecomparator.cpp
|
|
src/filterparser/filterparserfloatltcomparator.cpp
|
|
src/filterparser/filterparserfloatnecomparator.cpp
|
|
src/filterparser/filterparserint64eqcomparator.cpp
|
|
src/filterparser/filterparserint64gecomparator.cpp
|
|
src/filterparser/filterparserint64gtcomparator.cpp
|
|
src/filterparser/filterparserint64lecomparator.cpp
|
|
src/filterparser/filterparserint64ltcomparator.cpp
|
|
src/filterparser/filterparserint64necomparator.cpp
|
|
src/filterparser/filterparserinteqcomparator.cpp
|
|
src/filterparser/filterparserintgecomparator.cpp
|
|
src/filterparser/filterparserintgtcomparator.cpp
|
|
src/filterparser/filterparserintlecomparator.cpp
|
|
src/filterparser/filterparserintltcomparator.cpp
|
|
src/filterparser/filterparserintnecomparator.cpp
|
|
src/filterparser/filterparsersearchtermcomparator.cpp
|
|
src/filterparser/filterparsertextcontainscomparator.cpp
|
|
src/filterparser/filterparsertexteqcomparator.cpp
|
|
src/filterparser/filterparsertextnecomparator.cpp
|
|
src/filterparser/filterparseruinteqcomparator.cpp
|
|
src/filterparser/filterparseruintgecomparator.cpp
|
|
src/filterparser/filterparseruintgtcomparator.cpp
|
|
src/filterparser/filterparseruintlecomparator.cpp
|
|
src/filterparser/filterparseruintltcomparator.cpp
|
|
src/filterparser/filterparseruintnecomparator.cpp
|
|
|
|
src/engine/enginebase.cpp
|
|
src/engine/enginedevice.cpp
|
|
src/engine/devicefinders.cpp
|
|
src/engine/devicefinder.cpp
|
|
src/engine/gststartup.cpp
|
|
src/engine/gstengine.cpp
|
|
src/engine/gstenginepipeline.cpp
|
|
|
|
src/analyzer/fht.cpp
|
|
src/analyzer/analyzerbase.cpp
|
|
src/analyzer/analyzercontainer.cpp
|
|
src/analyzer/blockanalyzer.cpp
|
|
src/analyzer/boomanalyzer.cpp
|
|
src/analyzer/turbineanalyzer.cpp
|
|
src/analyzer/sonogramanalyzer.cpp
|
|
src/analyzer/waverubberanalyzer.cpp
|
|
src/analyzer/rainbowanalyzer.cpp
|
|
|
|
src/equalizer/equalizer.cpp
|
|
src/equalizer/equalizerslider.cpp
|
|
|
|
src/context/contextview.cpp
|
|
src/context/contextalbum.cpp
|
|
|
|
src/collection/collectionlibrary.cpp
|
|
src/collection/collectionmodel.cpp
|
|
src/collection/collectionbackend.cpp
|
|
src/collection/collectionwatcher.cpp
|
|
src/collection/collectionview.cpp
|
|
src/collection/collectionitem.cpp
|
|
src/collection/collectionitemdelegate.cpp
|
|
src/collection/collectionviewcontainer.cpp
|
|
src/collection/collectiondirectorymodel.cpp
|
|
src/collection/collectionfilteroptions.cpp
|
|
src/collection/collectionfilterwidget.cpp
|
|
src/collection/collectionfilter.cpp
|
|
src/collection/collectionplaylistitem.cpp
|
|
src/collection/collectionquery.cpp
|
|
src/collection/savedgroupingmanager.cpp
|
|
src/collection/groupbydialog.cpp
|
|
src/collection/collectiontask.cpp
|
|
src/collection/collectionmodelupdate.cpp
|
|
|
|
src/playlist/playlist.cpp
|
|
src/playlist/playlistbackend.cpp
|
|
src/playlist/playlistcontainer.cpp
|
|
src/playlist/playlistdelegates.cpp
|
|
src/playlist/playlistfilter.cpp
|
|
src/playlist/playlistheader.cpp
|
|
src/playlist/playlistitem.cpp
|
|
src/playlist/songplaylistitem.cpp
|
|
src/playlist/streamplaylistitem.cpp
|
|
src/playlist/playlistitemmimedata.cpp
|
|
src/playlist/playlistlistcontainer.cpp
|
|
src/playlist/playlistlistmodel.cpp
|
|
src/playlist/playlistlistsortfiltermodel.cpp
|
|
src/playlist/playlistlistview.cpp
|
|
src/playlist/playlistmanagerinterface.cpp
|
|
src/playlist/playlistmanager.cpp
|
|
src/playlist/playlistsaveoptionsdialog.cpp
|
|
src/playlist/playlistsequence.cpp
|
|
src/playlist/playlisttabbar.cpp
|
|
src/playlist/playlistview.cpp
|
|
src/playlist/playlistproxystyle.cpp
|
|
src/playlist/songloaderinserter.cpp
|
|
src/playlist/dynamicplaylistcontrols.cpp
|
|
src/playlist/playlistundocommandbase.cpp
|
|
src/playlist/playlistundocommandinsertitems.cpp
|
|
src/playlist/playlistundocommandremoveitems.cpp
|
|
src/playlist/playlistundocommandmoveitems.cpp
|
|
src/playlist/playlistundocommandreorderitems.cpp
|
|
src/playlist/playlistundocommandsortitems.cpp
|
|
src/playlist/playlistundocommandshuffleitems.cpp
|
|
|
|
src/queue/queue.cpp
|
|
src/queue/queueview.cpp
|
|
|
|
src/playlistparsers/asxiniparser.cpp
|
|
src/playlistparsers/asxparser.cpp
|
|
src/playlistparsers/cueparser.cpp
|
|
src/playlistparsers/m3uparser.cpp
|
|
src/playlistparsers/parserbase.cpp
|
|
src/playlistparsers/playlistparser.cpp
|
|
src/playlistparsers/plsparser.cpp
|
|
src/playlistparsers/wplparser.cpp
|
|
src/playlistparsers/xmlparser.cpp
|
|
src/playlistparsers/xspfparser.cpp
|
|
|
|
src/smartplaylists/playlistgenerator.cpp
|
|
src/smartplaylists/playlistgeneratorinserter.cpp
|
|
src/smartplaylists/playlistgeneratormimedata.cpp
|
|
src/smartplaylists/playlistquerygenerator.cpp
|
|
src/smartplaylists/smartplaylistquerywizardplugin.cpp
|
|
src/smartplaylists/smartplaylistquerywizardpluginsortpage.cpp
|
|
src/smartplaylists/smartplaylistquerywizardpluginsearchpage.cpp
|
|
src/smartplaylists/smartplaylistsearch.cpp
|
|
src/smartplaylists/smartplaylistsearchpreview.cpp
|
|
src/smartplaylists/smartplaylistsearchterm.cpp
|
|
src/smartplaylists/smartplaylistsearchtermwidget.cpp
|
|
src/smartplaylists/smartplaylistsearchtermwidgetoverlay.cpp
|
|
src/smartplaylists/smartplaylistsmodel.cpp
|
|
src/smartplaylists/smartplaylistsviewcontainer.cpp
|
|
src/smartplaylists/smartplaylistsview.cpp
|
|
src/smartplaylists/smartplaylistwizard.cpp
|
|
src/smartplaylists/smartplaylistwizardplugin.cpp
|
|
src/smartplaylists/smartplaylistwizardtypepage.cpp
|
|
src/smartplaylists/smartplaylistwizardfinishpage.cpp
|
|
|
|
src/covermanager/albumcovermanager.cpp
|
|
src/covermanager/albumcovermanagerlist.cpp
|
|
src/covermanager/albumcoverloader.cpp
|
|
src/covermanager/albumcoverloaderoptions.cpp
|
|
src/covermanager/albumcoverfetcher.cpp
|
|
src/covermanager/albumcoverfetchersearch.cpp
|
|
src/covermanager/albumcoversearcher.cpp
|
|
src/covermanager/albumcoverexport.cpp
|
|
src/covermanager/albumcoverexporter.cpp
|
|
src/covermanager/albumcoverchoicecontroller.cpp
|
|
src/covermanager/coverprovider.cpp
|
|
src/covermanager/coverproviders.cpp
|
|
src/covermanager/coversearchstatistics.cpp
|
|
src/covermanager/coversearchstatisticsdialog.cpp
|
|
src/covermanager/coverexportrunnable.cpp
|
|
src/covermanager/currentalbumcoverloader.cpp
|
|
src/covermanager/coverfromurldialog.cpp
|
|
src/covermanager/jsoncoverprovider.cpp
|
|
src/covermanager/lastfmcoverprovider.cpp
|
|
src/covermanager/musicbrainzcoverprovider.cpp
|
|
src/covermanager/discogscoverprovider.cpp
|
|
src/covermanager/deezercoverprovider.cpp
|
|
src/covermanager/musixmatchcoverprovider.cpp
|
|
src/covermanager/opentidalcoverprovider.cpp
|
|
|
|
src/lyrics/lyricsproviders.cpp
|
|
src/lyrics/lyricsprovider.cpp
|
|
src/lyrics/lyricssearchrequest.h
|
|
src/lyrics/lyricssearchresult.h
|
|
src/lyrics/lyricsfetcher.cpp
|
|
src/lyrics/lyricsfetchersearch.cpp
|
|
src/lyrics/jsonlyricsprovider.cpp
|
|
src/lyrics/htmllyricsprovider.cpp
|
|
src/lyrics/ovhlyricsprovider.cpp
|
|
src/lyrics/lololyricsprovider.cpp
|
|
src/lyrics/geniuslyricsprovider.cpp
|
|
src/lyrics/musixmatchlyricsprovider.cpp
|
|
src/lyrics/chartlyricsprovider.cpp
|
|
src/lyrics/songlyricscomlyricsprovider.cpp
|
|
src/lyrics/azlyricscomlyricsprovider.cpp
|
|
src/lyrics/elyricsnetlyricsprovider.cpp
|
|
src/lyrics/letraslyricsprovider.cpp
|
|
src/lyrics/lyricfindlyricsprovider.cpp
|
|
src/lyrics/lrcliblyricsprovider.cpp
|
|
|
|
src/settings/settingsdialog.cpp
|
|
src/settings/settingspage.cpp
|
|
src/settings/settingsitemdelegate.cpp
|
|
src/settings/behavioursettingspage.cpp
|
|
src/settings/collectionsettingspage.cpp
|
|
src/settings/collectionsettingsdirectorymodel.cpp
|
|
src/settings/backendsettingspage.cpp
|
|
src/settings/playlistsettingspage.cpp
|
|
src/settings/scrobblersettingspage.cpp
|
|
src/settings/coverssettingspage.cpp
|
|
src/settings/lyricssettingspage.cpp
|
|
src/settings/networkproxysettingspage.cpp
|
|
src/settings/appearancesettingspage.cpp
|
|
src/settings/contextsettingspage.cpp
|
|
src/settings/notificationssettingspage.cpp
|
|
src/settings/transcodersettingspage.cpp
|
|
|
|
src/dialogs/about.cpp
|
|
src/dialogs/console.cpp
|
|
src/dialogs/errordialog.cpp
|
|
src/dialogs/edittagdialog.cpp
|
|
src/dialogs/trackselectiondialog.cpp
|
|
src/dialogs/addstreamdialog.cpp
|
|
src/dialogs/userpassdialog.cpp
|
|
src/dialogs/deleteconfirmationdialog.cpp
|
|
src/dialogs/lastfmimportdialog.cpp
|
|
src/dialogs/messagedialog.cpp
|
|
src/dialogs/snapdialog.cpp
|
|
src/dialogs/saveplaylistsdialog.cpp
|
|
|
|
src/widgets/autoexpandingtreeview.cpp
|
|
src/widgets/busyindicator.cpp
|
|
src/widgets/clickablelabel.cpp
|
|
src/widgets/fancytabwidget.cpp
|
|
src/widgets/fancytabbar.cpp
|
|
src/widgets/fancytabdata.cpp
|
|
src/widgets/favoritewidget.cpp
|
|
src/widgets/forcescrollperpixel.cpp
|
|
src/widgets/freespacebar.cpp
|
|
src/widgets/groupediconview.cpp
|
|
src/widgets/lineedit.cpp
|
|
src/widgets/linetextedit.cpp
|
|
src/widgets/multiloadingindicator.cpp
|
|
src/widgets/playingwidget.cpp
|
|
src/widgets/renametablineedit.cpp
|
|
src/widgets/sliderslider.cpp
|
|
src/widgets/prettyslider.cpp
|
|
src/widgets/volumeslider.cpp
|
|
src/widgets/stickyslider.cpp
|
|
src/widgets/stretchheaderview.cpp
|
|
src/widgets/trackslider.cpp
|
|
src/widgets/tracksliderpopup.cpp
|
|
src/widgets/tracksliderslider.cpp
|
|
src/widgets/loginstatewidget.cpp
|
|
src/widgets/ratingwidget.cpp
|
|
src/widgets/resizabletextedit.cpp
|
|
|
|
src/osd/osdbase.cpp
|
|
src/osd/osdpretty.cpp
|
|
|
|
src/streaming/streamingservices.cpp
|
|
src/streaming/streamingservice.cpp
|
|
src/streaming/streamserviceplaylistitem.cpp
|
|
src/streaming/streamingsearchview.cpp
|
|
src/streaming/streamingsearchmodel.cpp
|
|
src/streaming/streamingsearchsortmodel.cpp
|
|
src/streaming/streamingsearchitemdelegate.cpp
|
|
src/streaming/streamingsongsview.cpp
|
|
src/streaming/streamingtabsview.cpp
|
|
src/streaming/streamingcollectionview.cpp
|
|
src/streaming/streamingcollectionviewcontainer.cpp
|
|
src/streaming/streamingsearchview.cpp
|
|
src/streaming/streamsongmimedata.cpp
|
|
|
|
src/radios/radioservices.cpp
|
|
src/radios/radiobackend.cpp
|
|
src/radios/radiomodel.cpp
|
|
src/radios/radioview.cpp
|
|
src/radios/radioviewcontainer.cpp
|
|
src/radios/radioservice.cpp
|
|
src/radios/radiostreamplaylistitem.cpp
|
|
src/radios/radiochannel.cpp
|
|
src/radios/somafmservice.cpp
|
|
src/radios/radioparadiseservice.cpp
|
|
src/radios/radiomimedata.cpp
|
|
|
|
src/scrobbler/audioscrobbler.cpp
|
|
src/scrobbler/scrobblersettingsservice.cpp
|
|
src/scrobbler/scrobblerservice.cpp
|
|
src/scrobbler/scrobblercache.cpp
|
|
src/scrobbler/scrobblercacheitem.cpp
|
|
src/scrobbler/scrobblemetadata.cpp
|
|
src/scrobbler/lastfmscrobbler.cpp
|
|
src/scrobbler/listenbrainzscrobbler.cpp
|
|
src/scrobbler/lastfmimport.cpp
|
|
|
|
src/organize/organize.cpp
|
|
src/organize/organizeformat.cpp
|
|
src/organize/organizeformatvalidator.cpp
|
|
src/organize/organizesyntaxhighlighter.cpp
|
|
src/organize/organizedialog.cpp
|
|
src/organize/organizeerrordialog.cpp
|
|
|
|
src/transcoder/transcoder.cpp
|
|
src/transcoder/transcoderoptionsinterface.cpp
|
|
src/transcoder/transcodedialog.cpp
|
|
src/transcoder/transcoderoptionsdialog.cpp
|
|
src/transcoder/transcoderoptionsflac.cpp
|
|
src/transcoder/transcoderoptionswavpack.cpp
|
|
src/transcoder/transcoderoptionsvorbis.cpp
|
|
src/transcoder/transcoderoptionsopus.cpp
|
|
src/transcoder/transcoderoptionsspeex.cpp
|
|
src/transcoder/transcoderoptionsaac.cpp
|
|
src/transcoder/transcoderoptionsasf.cpp
|
|
src/transcoder/transcoderoptionsmp3.cpp
|
|
|
|
src/systemtrayicon/systemtrayicon.cpp
|
|
|
|
src/fileview/fileview.cpp
|
|
src/fileview/fileviewlist.cpp
|
|
src/fileview/fileviewtree.cpp
|
|
src/fileview/fileviewtreemodel.cpp
|
|
|
|
src/device/devicemanager.cpp
|
|
src/device/devicelister.cpp
|
|
src/device/devicedatabasebackend.cpp
|
|
src/device/deviceinfo.cpp
|
|
src/device/deviceproperties.cpp
|
|
src/device/filesystemdevice.cpp
|
|
src/device/connecteddevice.cpp
|
|
src/device/devicestatefiltermodel.cpp
|
|
src/device/deviceviewcontainer.cpp
|
|
src/device/deviceview.cpp
|
|
)
|
|
|
|
set(HEADERS
|
|
src/core/logging.h
|
|
src/core/mainwindow.h
|
|
src/core/application.h
|
|
src/core/player.h
|
|
src/core/playerinterface.h
|
|
src/core/database.h
|
|
src/core/memorydatabase.h
|
|
src/core/deletefiles.h
|
|
src/core/filesystemwatcherinterface.h
|
|
src/core/mergedproxymodel.h
|
|
src/core/multisortfilterproxy.h
|
|
src/core/networkaccessmanager.h
|
|
src/core/threadsafenetworkdiskcache.h
|
|
src/core/networktimeouts.h
|
|
src/core/qtfslistener.h
|
|
src/core/settings.h
|
|
src/core/songloader.h
|
|
src/core/taskmanager.h
|
|
src/core/thread.h
|
|
src/core/urlhandlers.h
|
|
src/core/urlhandler.h
|
|
src/core/standarditemiconloader.h
|
|
src/core/mimedata.h
|
|
src/core/stylesheetloader.h
|
|
src/core/localredirectserver.h
|
|
src/core/songmimedata.h
|
|
src/core/httpbaserequest.h
|
|
src/core/jsonbaserequest.h
|
|
src/core/oauthenticator.h
|
|
|
|
src/tagreader/tagreaderclient.h
|
|
src/tagreader/tagreaderreply.h
|
|
src/tagreader/tagreaderreadfilereply.h
|
|
src/tagreader/tagreaderloadcoverdatareply.h
|
|
src/tagreader/tagreaderloadcoverimagereply.h
|
|
|
|
src/engine/enginebase.h
|
|
src/engine/devicefinders.h
|
|
src/engine/gstengine.h
|
|
src/engine/gstenginepipeline.h
|
|
|
|
src/analyzer/analyzerbase.h
|
|
src/analyzer/analyzercontainer.h
|
|
src/analyzer/blockanalyzer.h
|
|
src/analyzer/boomanalyzer.h
|
|
src/analyzer/turbineanalyzer.h
|
|
src/analyzer/sonogramanalyzer.h
|
|
src/analyzer/waverubberanalyzer.h
|
|
src/analyzer/rainbowanalyzer.h
|
|
|
|
src/equalizer/equalizer.h
|
|
src/equalizer/equalizerslider.h
|
|
|
|
src/context/contextview.h
|
|
src/context/contextalbum.h
|
|
|
|
src/collection/collectionlibrary.h
|
|
src/collection/collectionmodel.h
|
|
src/collection/collectionbackend.h
|
|
src/collection/collectionwatcher.h
|
|
src/collection/collectionview.h
|
|
src/collection/collectionitemdelegate.h
|
|
src/collection/collectionviewcontainer.h
|
|
src/collection/collectiondirectorymodel.h
|
|
src/collection/collectionfilterwidget.h
|
|
src/collection/collectionfilter.h
|
|
src/collection/savedgroupingmanager.h
|
|
src/collection/groupbydialog.h
|
|
|
|
src/playlist/playlist.h
|
|
src/playlist/playlistbackend.h
|
|
src/playlist/playlistcontainer.h
|
|
src/playlist/playlistdelegates.h
|
|
src/playlist/playlistfilter.h
|
|
src/playlist/playlistheader.h
|
|
src/playlist/playlistlistcontainer.h
|
|
src/playlist/playlistlistmodel.h
|
|
src/playlist/playlistlistview.h
|
|
src/playlist/playlistlistsortfiltermodel.h
|
|
src/playlist/playlistmanagerinterface.h
|
|
src/playlist/playlistmanager.h
|
|
src/playlist/playlistsaveoptionsdialog.h
|
|
src/playlist/playlistsequence.h
|
|
src/playlist/playlisttabbar.h
|
|
src/playlist/playlistview.h
|
|
src/playlist/playlistproxystyle.h
|
|
src/playlist/playlistitemmimedata.h
|
|
src/playlist/songloaderinserter.h
|
|
src/playlist/dynamicplaylistcontrols.h
|
|
|
|
src/queue/queue.h
|
|
src/queue/queueview.h
|
|
|
|
src/playlistparsers/asxiniparser.h
|
|
src/playlistparsers/asxparser.h
|
|
src/playlistparsers/cueparser.h
|
|
src/playlistparsers/m3uparser.h
|
|
src/playlistparsers/parserbase.h
|
|
src/playlistparsers/playlistparser.h
|
|
src/playlistparsers/plsparser.h
|
|
src/playlistparsers/wplparser.h
|
|
src/playlistparsers/xmlparser.h
|
|
src/playlistparsers/xspfparser.h
|
|
|
|
src/smartplaylists/playlistgenerator.h
|
|
src/smartplaylists/playlistgeneratorinserter.h
|
|
src/smartplaylists/playlistquerygenerator.h
|
|
src/smartplaylists/playlistgeneratormimedata.h
|
|
src/smartplaylists/smartplaylistquerywizardplugin.h
|
|
src/smartplaylists/smartplaylistquerywizardpluginsortpage.h
|
|
src/smartplaylists/smartplaylistquerywizardpluginsearchpage.h
|
|
src/smartplaylists/smartplaylistsearchpreview.h
|
|
src/smartplaylists/smartplaylistsearchtermwidget.h
|
|
src/smartplaylists/smartplaylistsearchtermwidgetoverlay.h
|
|
src/smartplaylists/smartplaylistsmodel.h
|
|
src/smartplaylists/smartplaylistsviewcontainer.h
|
|
src/smartplaylists/smartplaylistsview.h
|
|
src/smartplaylists/smartplaylistwizard.h
|
|
src/smartplaylists/smartplaylistwizardplugin.h
|
|
src/smartplaylists/smartplaylistwizardtypepage.h
|
|
src/smartplaylists/smartplaylistwizardfinishpage.h
|
|
|
|
src/covermanager/albumcovermanager.h
|
|
src/covermanager/albumcovermanagerlist.h
|
|
src/covermanager/albumcoverloader.h
|
|
src/covermanager/albumcoverfetcher.h
|
|
src/covermanager/albumcoverfetchersearch.h
|
|
src/covermanager/albumcoversearcher.h
|
|
src/covermanager/albumcoverexport.h
|
|
src/covermanager/albumcoverexporter.h
|
|
src/covermanager/albumcoverchoicecontroller.h
|
|
src/covermanager/coverprovider.h
|
|
src/covermanager/coverproviders.h
|
|
src/covermanager/coversearchstatisticsdialog.h
|
|
src/covermanager/coverexportrunnable.h
|
|
src/covermanager/currentalbumcoverloader.h
|
|
src/covermanager/coverfromurldialog.h
|
|
src/covermanager/jsoncoverprovider.h
|
|
src/covermanager/lastfmcoverprovider.h
|
|
src/covermanager/musicbrainzcoverprovider.h
|
|
src/covermanager/discogscoverprovider.h
|
|
src/covermanager/deezercoverprovider.h
|
|
src/covermanager/musixmatchcoverprovider.h
|
|
src/covermanager/opentidalcoverprovider.h
|
|
|
|
src/lyrics/lyricsproviders.h
|
|
src/lyrics/lyricsprovider.h
|
|
src/lyrics/lyricsfetcher.h
|
|
src/lyrics/lyricsfetchersearch.h
|
|
src/lyrics/jsonlyricsprovider.h
|
|
src/lyrics/htmllyricsprovider.h
|
|
src/lyrics/ovhlyricsprovider.h
|
|
src/lyrics/lololyricsprovider.h
|
|
src/lyrics/geniuslyricsprovider.h
|
|
src/lyrics/musixmatchlyricsprovider.h
|
|
src/lyrics/chartlyricsprovider.h
|
|
src/lyrics/songlyricscomlyricsprovider.h
|
|
src/lyrics/azlyricscomlyricsprovider.h
|
|
src/lyrics/elyricsnetlyricsprovider.h
|
|
src/lyrics/letraslyricsprovider.h
|
|
src/lyrics/lyricfindlyricsprovider.h
|
|
src/lyrics/lrcliblyricsprovider.h
|
|
|
|
src/settings/settingsdialog.h
|
|
src/settings/settingspage.h
|
|
src/settings/settingsitemdelegate.h
|
|
src/settings/behavioursettingspage.h
|
|
src/settings/collectionsettingspage.h
|
|
src/settings/collectionsettingsdirectorymodel.h
|
|
src/settings/backendsettingspage.h
|
|
src/settings/playlistsettingspage.h
|
|
src/settings/scrobblersettingspage.h
|
|
src/settings/coverssettingspage.h
|
|
src/settings/lyricssettingspage.h
|
|
src/settings/networkproxysettingspage.h
|
|
src/settings/appearancesettingspage.h
|
|
src/settings/contextsettingspage.h
|
|
src/settings/notificationssettingspage.h
|
|
src/settings/transcodersettingspage.h
|
|
|
|
src/dialogs/about.h
|
|
src/dialogs/errordialog.h
|
|
src/dialogs/console.h
|
|
src/dialogs/edittagdialog.h
|
|
src/dialogs/trackselectiondialog.h
|
|
src/dialogs/addstreamdialog.h
|
|
src/dialogs/userpassdialog.h
|
|
src/dialogs/deleteconfirmationdialog.h
|
|
src/dialogs/lastfmimportdialog.h
|
|
src/dialogs/messagedialog.h
|
|
src/dialogs/snapdialog.h
|
|
src/dialogs/saveplaylistsdialog.h
|
|
|
|
src/widgets/autoexpandingtreeview.h
|
|
src/widgets/busyindicator.h
|
|
src/widgets/clickablelabel.h
|
|
src/widgets/fancytabwidget.h
|
|
src/widgets/fancytabbar.h
|
|
src/widgets/fancytabdata.h
|
|
src/widgets/favoritewidget.h
|
|
src/widgets/freespacebar.h
|
|
src/widgets/groupediconview.h
|
|
src/widgets/lineedit.h
|
|
src/widgets/linetextedit.h
|
|
src/widgets/multiloadingindicator.h
|
|
src/widgets/playingwidget.h
|
|
src/widgets/renametablineedit.h
|
|
src/widgets/sliderslider.h
|
|
src/widgets/prettyslider.h
|
|
src/widgets/volumeslider.h
|
|
src/widgets/stickyslider.h
|
|
src/widgets/stretchheaderview.h
|
|
src/widgets/trackslider.h
|
|
src/widgets/tracksliderpopup.h
|
|
src/widgets/tracksliderslider.h
|
|
src/widgets/loginstatewidget.h
|
|
src/widgets/searchfield.h
|
|
src/widgets/ratingwidget.h
|
|
src/widgets/forcescrollperpixel.h
|
|
src/widgets/resizabletextedit.h
|
|
|
|
src/osd/osdbase.h
|
|
src/osd/osdpretty.h
|
|
|
|
src/streaming/streamingservices.h
|
|
src/streaming/streamingservice.h
|
|
src/streaming/streamsongmimedata.h
|
|
src/streaming/streamingsearchmodel.h
|
|
src/streaming/streamingsearchsortmodel.h
|
|
src/streaming/streamingsearchitemdelegate.h
|
|
src/streaming/streamingsearchview.h
|
|
src/streaming/streamingsongsview.h
|
|
src/streaming/streamingtabsview.h
|
|
src/streaming/streamingcollectionview.h
|
|
src/streaming/streamingcollectionviewcontainer.h
|
|
|
|
src/radios/radioservices.h
|
|
src/radios/radiobackend.h
|
|
src/radios/radiomodel.h
|
|
src/radios/radioview.h
|
|
src/radios/radioviewcontainer.h
|
|
src/radios/radioservice.h
|
|
src/radios/radiomimedata.h
|
|
src/radios/somafmservice.h
|
|
src/radios/radioparadiseservice.h
|
|
|
|
src/scrobbler/audioscrobbler.h
|
|
src/scrobbler/scrobblersettingsservice.h
|
|
src/scrobbler/scrobblerservice.h
|
|
src/scrobbler/scrobblercache.h
|
|
src/scrobbler/lastfmscrobbler.h
|
|
src/scrobbler/listenbrainzscrobbler.h
|
|
src/scrobbler/lastfmimport.h
|
|
|
|
src/organize/organize.h
|
|
src/organize/organizeformatvalidator.h
|
|
src/organize/organizesyntaxhighlighter.h
|
|
src/organize/organizedialog.h
|
|
src/organize/organizeerrordialog.h
|
|
|
|
src/transcoder/transcoder.h
|
|
src/transcoder/transcodedialog.h
|
|
src/transcoder/transcoderoptionsdialog.h
|
|
src/transcoder/transcoderoptionsinterface.h
|
|
src/transcoder/transcoderoptionsflac.h
|
|
src/transcoder/transcoderoptionswavpack.h
|
|
src/transcoder/transcoderoptionsvorbis.h
|
|
src/transcoder/transcoderoptionsopus.h
|
|
src/transcoder/transcoderoptionsspeex.h
|
|
src/transcoder/transcoderoptionsaac.h
|
|
src/transcoder/transcoderoptionsasf.h
|
|
src/transcoder/transcoderoptionsmp3.h
|
|
|
|
src/fileview/fileview.h
|
|
src/fileview/fileviewlist.h
|
|
src/fileview/fileviewtree.h
|
|
src/fileview/fileviewtreemodel.h
|
|
|
|
src/device/devicemanager.h
|
|
src/device/devicelister.h
|
|
src/device/devicedatabasebackend.h
|
|
src/device/deviceproperties.h
|
|
src/device/filesystemdevice.h
|
|
src/device/connecteddevice.h
|
|
src/device/devicestatefiltermodel.h
|
|
src/device/deviceviewcontainer.h
|
|
src/device/deviceview.h
|
|
)
|
|
|
|
set(UI
|
|
|
|
src/core/mainwindow.ui
|
|
|
|
src/collection/groupbydialog.ui
|
|
src/collection/collectionfilterwidget.ui
|
|
src/collection/collectionviewcontainer.ui
|
|
src/collection/savedgroupingmanager.ui
|
|
|
|
src/playlist/playlistcontainer.ui
|
|
src/playlist/playlistlistcontainer.ui
|
|
src/playlist/playlistsaveoptionsdialog.ui
|
|
src/playlist/playlistsequence.ui
|
|
src/playlist/dynamicplaylistcontrols.ui
|
|
|
|
src/queue/queueview.ui
|
|
|
|
src/smartplaylists/smartplaylistquerysearchpage.ui
|
|
src/smartplaylists/smartplaylistquerysortpage.ui
|
|
src/smartplaylists/smartplaylistsearchpreview.ui
|
|
src/smartplaylists/smartplaylistsearchtermwidget.ui
|
|
src/smartplaylists/smartplaylistsviewcontainer.ui
|
|
src/smartplaylists/smartplaylistwizardfinishpage.ui
|
|
|
|
src/covermanager/albumcoverexport.ui
|
|
src/covermanager/albumcovermanager.ui
|
|
src/covermanager/albumcoversearcher.ui
|
|
src/covermanager/coversearchstatisticsdialog.ui
|
|
src/covermanager/coverfromurldialog.ui
|
|
|
|
src/settings/settingsdialog.ui
|
|
src/settings/behavioursettingspage.ui
|
|
src/settings/collectionsettingspage.ui
|
|
src/settings/backendsettingspage.ui
|
|
src/settings/contextsettingspage.ui
|
|
src/settings/playlistsettingspage.ui
|
|
src/settings/scrobblersettingspage.ui
|
|
src/settings/coverssettingspage.ui
|
|
src/settings/lyricssettingspage.ui
|
|
src/settings/networkproxysettingspage.ui
|
|
src/settings/appearancesettingspage.ui
|
|
src/settings/notificationssettingspage.ui
|
|
src/settings/transcodersettingspage.ui
|
|
|
|
src/equalizer/equalizer.ui
|
|
src/equalizer/equalizerslider.ui
|
|
|
|
src/dialogs/about.ui
|
|
src/dialogs/errordialog.ui
|
|
src/dialogs/console.ui
|
|
src/dialogs/edittagdialog.ui
|
|
src/dialogs/trackselectiondialog.ui
|
|
src/dialogs/addstreamdialog.ui
|
|
src/dialogs/userpassdialog.ui
|
|
src/dialogs/lastfmimportdialog.ui
|
|
src/dialogs/messagedialog.ui
|
|
src/dialogs/saveplaylistsdialog.ui
|
|
|
|
src/widgets/trackslider.ui
|
|
src/widgets/loginstatewidget.ui
|
|
|
|
src/osd/osdpretty.ui
|
|
|
|
src/streaming/streamingtabsview.ui
|
|
src/streaming/streamingcollectionviewcontainer.ui
|
|
src/streaming/streamingsearchview.ui
|
|
|
|
src/radios/radioviewcontainer.ui
|
|
|
|
src/organize/organizedialog.ui
|
|
src/organize/organizeerrordialog.ui
|
|
|
|
src/transcoder/transcodedialog.ui
|
|
src/transcoder/transcodelogdialog.ui
|
|
src/transcoder/transcoderoptionsaac.ui
|
|
src/transcoder/transcoderoptionsdialog.ui
|
|
src/transcoder/transcoderoptionsflac.ui
|
|
src/transcoder/transcoderoptionswavpack.ui
|
|
src/transcoder/transcoderoptionsvorbis.ui
|
|
src/transcoder/transcoderoptionsopus.ui
|
|
src/transcoder/transcoderoptionsspeex.ui
|
|
src/transcoder/transcoderoptionsasf.ui
|
|
src/transcoder/transcoderoptionsmp3.ui
|
|
|
|
src/fileview/fileview.ui
|
|
|
|
src/device/deviceproperties.ui
|
|
src/device/deviceviewcontainer.ui
|
|
)
|
|
|
|
if(UNIX)
|
|
optional_source(UNIX SOURCES src/core/unixsignalwatcher.cpp HEADERS src/core/unixsignalwatcher.h)
|
|
endif()
|
|
|
|
if(APPLE)
|
|
optional_source(APPLE
|
|
SOURCES
|
|
src/utilities/macosutils.mm
|
|
src/core/scoped_nsautorelease_pool.mm
|
|
src/core/mac_startup.mm
|
|
src/systemtrayicon/macsystemtrayicon.mm
|
|
src/osd/osdmac.mm
|
|
src/widgets/searchfield_mac.mm
|
|
src/engine/macosdevicefinder.cpp
|
|
src/device/macosdevicelister.mm
|
|
HEADERS
|
|
src/systemtrayicon/macsystemtrayicon.h
|
|
src/osd/osdmac.h
|
|
src/device/macosdevicelister.h
|
|
)
|
|
optional_source(HAVE_SPARKLE SOURCES src/core/sparkleupdater.mm HEADERS src/core/sparkleupdater.h)
|
|
else()
|
|
list(APPEND SOURCES src/systemtrayicon/qtsystemtrayicon.cpp src/widgets/searchfield_qt.cpp src/widgets/searchfield_qt_private.cpp)
|
|
list(APPEND HEADERS src/systemtrayicon/qtsystemtrayicon.h src/widgets/searchfield_qt_private.h)
|
|
endif()
|
|
|
|
optional_source(WIN32
|
|
SOURCES
|
|
src/utilities/scopedwchararray.cpp
|
|
src/utilities/winutils.cpp
|
|
src/engine/directsounddevicefinder.cpp
|
|
src/engine/mmdevicefinder.cpp
|
|
src/core/windows7thumbbar.cpp
|
|
HEADERS
|
|
src/core/windows7thumbbar.h
|
|
)
|
|
|
|
optional_source(HAVE_STREAMTAGREADER
|
|
SOURCES src/tagreader/streamtagreader.cpp src/tagreader/tagreaderreadstreamrequest.cpp src/tagreader/tagreaderreadstreamreply.cpp
|
|
HEADERS src/tagreader/tagreaderreadstreamreply.h
|
|
)
|
|
|
|
optional_source(HAVE_DISCORD_RPC
|
|
SOURCES src/discord/richpresence.cpp
|
|
HEADERS src/discord/richpresence.h
|
|
)
|
|
|
|
if(HAVE_GLOBALSHORTCUTS)
|
|
|
|
optional_source(HAVE_GLOBALSHORTCUTS
|
|
SOURCES src/globalshortcuts/globalshortcutsmanager.cpp src/globalshortcuts/globalshortcutsbackend.cpp src/globalshortcuts/globalshortcutgrabber.cpp src/settings/globalshortcutssettingspage.cpp
|
|
HEADERS src/globalshortcuts/globalshortcutsmanager.h src/globalshortcuts/globalshortcutsbackend.h src/globalshortcuts/globalshortcutgrabber.h src/settings/globalshortcutssettingspage.h
|
|
UI src/globalshortcuts/globalshortcutgrabber.ui src/settings/globalshortcutssettingspage.ui
|
|
)
|
|
|
|
if(HAVE_KGLOBALACCEL_GLOBALSHORTCUTS)
|
|
optional_source(HAVE_KGLOBALACCEL_GLOBALSHORTCUTS
|
|
SOURCES src/globalshortcuts/globalshortcutsbackend-kglobalaccel.cpp
|
|
HEADERS src/globalshortcuts/globalshortcutsbackend-kglobalaccel.h
|
|
)
|
|
qt_add_dbus_interface(SOURCES src/globalshortcuts/org.kde.KGlobalAccel.xml kglobalaccel)
|
|
qt_add_dbus_interface(SOURCES src/globalshortcuts/org.kde.KGlobalAccel.Component.xml kglobalaccelcomponent)
|
|
endif()
|
|
|
|
optional_source(HAVE_X11_GLOBALSHORTCUTS
|
|
SOURCES src/globalshortcuts/globalshortcutsbackend-x11.cpp src/globalshortcuts/globalshortcut.cpp src/globalshortcuts/globalshortcut-x11.cpp
|
|
HEADERS src/globalshortcuts/globalshortcutsbackend-x11.h src/globalshortcuts/globalshortcut.h
|
|
)
|
|
|
|
optional_source(APPLE
|
|
SOURCES src/globalshortcuts/globalshortcutsbackend-macos.mm src/globalshortcuts/globalshortcutgrabber.mm
|
|
HEADERS src/globalshortcuts/globalshortcutsbackend-macos.h src/globalshortcuts/globalshortcutgrabber.h
|
|
)
|
|
|
|
optional_source(WIN32
|
|
SOURCES src/globalshortcuts/globalshortcutsbackend-win.cpp src/globalshortcuts/globalshortcut.cpp src/globalshortcuts/globalshortcut-win.cpp
|
|
HEADERS src/globalshortcuts/globalshortcutsbackend-win.h src/globalshortcuts/globalshortcut.h
|
|
)
|
|
|
|
endif()
|
|
|
|
optional_source(HAVE_ALSA SOURCES src/engine/alsadevicefinder.cpp src/engine/alsapcmdevicefinder.cpp)
|
|
optional_source(HAVE_PULSE SOURCES src/engine/pulsedevicefinder.cpp)
|
|
optional_source(MSVC SOURCES src/engine/uwpdevicefinder.cpp src/engine/asiodevicefinder.cpp)
|
|
optional_source(HAVE_CHROMAPRINT SOURCES src/engine/chromaprinter.cpp)
|
|
|
|
optional_source(HAVE_MUSICBRAINZ
|
|
SOURCES
|
|
src/musicbrainz/acoustidclient.cpp
|
|
src/musicbrainz/musicbrainzclient.cpp
|
|
src/musicbrainz/tagfetcher.cpp
|
|
HEADERS
|
|
src/musicbrainz/acoustidclient.h
|
|
src/musicbrainz/musicbrainzclient.h
|
|
src/musicbrainz/tagfetcher.h
|
|
)
|
|
|
|
optional_source(HAVE_EBUR128 SOURCES src/engine/ebur128analysis.cpp)
|
|
|
|
if(HAVE_DBUS)
|
|
optional_source(HAVE_DBUS SOURCES src/osd/osddbus.cpp HEADERS src/osd/osddbus.h)
|
|
qt_add_dbus_interface(SOURCES src/osd/org.freedesktop.Notifications.xml notification)
|
|
endif()
|
|
|
|
if(HAVE_MPRIS2)
|
|
optional_source(HAVE_MPRIS2 SOURCES src/mpris2/mpris2.cpp HEADERS src/mpris2/mpris2.h)
|
|
qt_add_dbus_adaptor(SOURCES src/mpris2/org.mpris.MediaPlayer2.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_root Mpris2Root)
|
|
qt_add_dbus_adaptor(SOURCES src/mpris2/org.mpris.MediaPlayer2.Player.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_player Mpris2Player)
|
|
qt_add_dbus_adaptor(SOURCES src/mpris2/org.mpris.MediaPlayer2.TrackList.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_tracklist Mpris2TrackList)
|
|
qt_add_dbus_adaptor(SOURCES src/mpris2/org.mpris.MediaPlayer2.Playlists.xml src/mpris2/mpris2.h mpris::Mpris2 mpris2_playlists Mpris2Playlists)
|
|
endif()
|
|
|
|
optional_source(HAVE_MOODBAR
|
|
SOURCES
|
|
src/moodbar/moodbarbuilder.cpp
|
|
src/moodbar/moodbarcontroller.cpp
|
|
src/moodbar/moodbaritemdelegate.cpp
|
|
src/moodbar/moodbarloader.cpp
|
|
src/moodbar/moodbarpipeline.cpp
|
|
src/moodbar/moodbarproxystyle.cpp
|
|
src/moodbar/moodbarrenderer.cpp
|
|
src/engine/gstfastspectrumplugin.cpp
|
|
src/engine/gstfastspectrum.cpp
|
|
src/settings/moodbarsettingspage.cpp
|
|
HEADERS
|
|
src/moodbar/moodbarcontroller.h
|
|
src/moodbar/moodbaritemdelegate.h
|
|
src/moodbar/moodbarloader.h
|
|
src/moodbar/moodbarpipeline.h
|
|
src/moodbar/moodbarproxystyle.h
|
|
src/settings/moodbarsettingspage.h
|
|
UI
|
|
src/settings/moodbarsettingspage.ui
|
|
)
|
|
|
|
optional_source(HAVE_GIO SOURCES src/device/giolister.cpp HEADERS src/device/giolister.h)
|
|
|
|
if(HAVE_UDISKS2)
|
|
optional_source(HAVE_UDISKS2 SOURCES src/device/udisks2lister.cpp HEADERS src/device/udisks2lister.h)
|
|
set_source_files_properties(src/device/org.freedesktop.DBus.ObjectManager.xml PROPERTIES NO_NAMESPACE objectmanager INCLUDE includes/dbus_metatypes.h)
|
|
set_source_files_properties(src/device/org.freedesktop.UDisks2.Filesystem.xml PROPERTIES NO_NAMESPACE udisks2filesystem INCLUDE includes/dbus_metatypes.h)
|
|
set_source_files_properties(src/device/org.freedesktop.UDisks2.Block.xml PROPERTIES NO_NAMESPACE udisks2block INCLUDE includes/dbus_metatypes.h)
|
|
set_source_files_properties(src/device/org.freedesktop.UDisks2.Drive.xml PROPERTIES NO_NAMESPACE udisks2drive INCLUDE includes/dbus_metatypes.h)
|
|
set_source_files_properties(src/device/org.freedesktop.UDisks2.Job.xml PROPERTIES NO_NAMESPACE udisks2job INCLUDE includes/dbus_metatypes.h)
|
|
qt_add_dbus_interface(SOURCES src/device/org.freedesktop.DBus.ObjectManager.xml objectmanager)
|
|
qt_add_dbus_interface(SOURCES src/device/org.freedesktop.UDisks2.Filesystem.xml udisks2filesystem)
|
|
qt_add_dbus_interface(SOURCES src/device/org.freedesktop.UDisks2.Block.xml udisks2block)
|
|
qt_add_dbus_interface(SOURCES src/device/org.freedesktop.UDisks2.Drive.xml udisks2drive)
|
|
qt_add_dbus_interface(SOURCES src/device/org.freedesktop.UDisks2.Job.xml udisks2job)
|
|
endif()
|
|
|
|
optional_source(HAVE_MTP
|
|
SOURCES
|
|
src/device/mtpconnection.cpp
|
|
src/device/mtpdevice.cpp
|
|
src/device/mtploader.cpp
|
|
HEADERS
|
|
src/device/mtpconnection.h
|
|
src/device/mtpdevice.h
|
|
src/device/mtploader.h
|
|
)
|
|
|
|
optional_source(HAVE_AUDIOCD
|
|
SOURCES
|
|
src/device/cddadevice.cpp
|
|
src/device/cddalister.cpp
|
|
src/device/cddasongloader.cpp
|
|
HEADERS
|
|
src/device/cddadevice.h
|
|
src/device/cddalister.h
|
|
src/device/cddasongloader.h
|
|
)
|
|
|
|
optional_source(HAVE_GPOD
|
|
SOURCES
|
|
src/device/gpoddevice.cpp
|
|
src/device/gpodloader.cpp
|
|
HEADERS
|
|
src/device/gpoddevice.h
|
|
src/device/gpodloader.h
|
|
)
|
|
|
|
optional_source(HAVE_SUBSONIC
|
|
SOURCES
|
|
src/subsonic/subsonicservice.cpp
|
|
src/subsonic/subsonicurlhandler.cpp
|
|
src/subsonic/subsonicbaserequest.cpp
|
|
src/subsonic/subsonicrequest.cpp
|
|
src/subsonic/subsonicscrobblerequest.cpp
|
|
src/settings/subsonicsettingspage.cpp
|
|
src/scrobbler/subsonicscrobbler.cpp
|
|
HEADERS
|
|
src/subsonic/subsonicservice.h
|
|
src/subsonic/subsonicurlhandler.h
|
|
src/subsonic/subsonicbaserequest.h
|
|
src/subsonic/subsonicrequest.h
|
|
src/subsonic/subsonicscrobblerequest.h
|
|
src/settings/subsonicsettingspage.h
|
|
src/scrobbler/subsonicscrobbler.h
|
|
UI
|
|
src/settings/subsonicsettingspage.ui
|
|
)
|
|
|
|
optional_source(HAVE_TIDAL
|
|
SOURCES
|
|
src/tidal/tidalservice.cpp
|
|
src/tidal/tidalurlhandler.cpp
|
|
src/tidal/tidalbaserequest.cpp
|
|
src/tidal/tidalrequest.cpp
|
|
src/tidal/tidalstreamurlrequest.cpp
|
|
src/tidal/tidalfavoriterequest.cpp
|
|
src/settings/tidalsettingspage.cpp
|
|
src/covermanager/tidalcoverprovider.cpp
|
|
HEADERS
|
|
src/tidal/tidalservice.h
|
|
src/tidal/tidalurlhandler.h
|
|
src/tidal/tidalbaserequest.h
|
|
src/tidal/tidalrequest.h
|
|
src/tidal/tidalstreamurlrequest.h
|
|
src/tidal/tidalfavoriterequest.h
|
|
src/settings/tidalsettingspage.h
|
|
src/covermanager/tidalcoverprovider.h
|
|
UI
|
|
src/settings/tidalsettingspage.ui
|
|
)
|
|
|
|
optional_source(HAVE_SPOTIFY
|
|
SOURCES
|
|
src/spotify/spotifyservice.cpp
|
|
src/spotify/spotifybaserequest.cpp
|
|
src/spotify/spotifyrequest.cpp
|
|
src/spotify/spotifyfavoriterequest.cpp
|
|
src/spotify/spotifymetadatarequest.cpp
|
|
src/settings/spotifysettingspage.cpp
|
|
src/covermanager/spotifycoverprovider.cpp
|
|
HEADERS
|
|
src/spotify/spotifyservice.h
|
|
src/spotify/spotifybaserequest.h
|
|
src/spotify/spotifyrequest.h
|
|
src/spotify/spotifyfavoriterequest.h
|
|
src/spotify/spotifymetadatarequest.h
|
|
src/settings/spotifysettingspage.h
|
|
src/covermanager/spotifycoverprovider.h
|
|
UI
|
|
src/settings/spotifysettingspage.ui
|
|
)
|
|
|
|
optional_source(HAVE_QOBUZ
|
|
SOURCES
|
|
src/qobuz/qobuzservice.cpp
|
|
src/qobuz/qobuzurlhandler.cpp
|
|
src/qobuz/qobuzbaserequest.cpp
|
|
src/qobuz/qobuzrequest.cpp
|
|
src/qobuz/qobuzstreamurlrequest.cpp
|
|
src/qobuz/qobuzfavoriterequest.cpp
|
|
src/qobuz/qobuzmetadatarequest.cpp
|
|
src/qobuz/qobuzcredentialfetcher.cpp
|
|
src/settings/qobuzsettingspage.cpp
|
|
src/covermanager/qobuzcoverprovider.cpp
|
|
HEADERS
|
|
src/qobuz/qobuzservice.h
|
|
src/qobuz/qobuzurlhandler.h
|
|
src/qobuz/qobuzbaserequest.h
|
|
src/qobuz/qobuzrequest.h
|
|
src/qobuz/qobuzstreamurlrequest.h
|
|
src/qobuz/qobuzfavoriterequest.h
|
|
src/qobuz/qobuzmetadatarequest.h
|
|
src/qobuz/qobuzcredentialfetcher.h
|
|
src/settings/qobuzsettingspage.h
|
|
src/covermanager/qobuzcoverprovider.h
|
|
UI
|
|
src/settings/qobuzsettingspage.ui
|
|
)
|
|
|
|
qt_wrap_cpp(SOURCES ${HEADERS})
|
|
qt_wrap_ui(SOURCES ${UI})
|
|
qt_add_resources(SOURCES data/data.qrc data/icons.qrc)
|
|
|
|
add_library(strawberry_lib STATIC ${SOURCES})
|
|
|
|
target_sources(strawberry PRIVATE src/main.cpp)
|
|
|
|
if(WIN32)
|
|
target_sources(strawberry PRIVATE windres.rc)
|
|
endif()
|
|
|
|
add_subdirectory(src)
|
|
add_subdirectory(dist)
|
|
|
|
if(TARGET GTest::gtest AND TARGET GTest::gmock AND Qt${QT_VERSION_MAJOR}Test_FOUND)
|
|
add_subdirectory(tests)
|
|
endif()
|
|
|
|
if(LINUX AND LSB_RELEASE_EXEC AND DPKG_BUILDPACKAGE)
|
|
add_subdirectory(debian)
|
|
endif()
|
|
|
|
if(HAVE_DISCORD_RPC)
|
|
add_subdirectory(3rdparty/discord-rpc)
|
|
target_include_directories(strawberry_lib PUBLIC 3rdparty/discord-rpc)
|
|
endif()
|
|
|
|
if(HAVE_TRANSLATIONS)
|
|
option(TRANSLATIONS_VERBOSE "Show verbose output while generating .qm translation files" OFF)
|
|
# On non-Windows platforms Qt doesn't need a PATH-setup wrapper for tools, but we can
|
|
# provide a wrapper to filter non-actionable lrelease noise during normal builds.
|
|
if(NOT CMAKE_HOST_WIN32)
|
|
set(QT_TOOL_COMMAND_WRAPPER_PATH "${CMAKE_SOURCE_DIR}/cmake/qt_tool_wrapper.sh"
|
|
CACHE INTERNAL "Wrapper used when invoking Qt tools from CMake" FORCE
|
|
)
|
|
endif()
|
|
qt_add_lupdate(strawberry_lib TS_FILES "${CMAKE_SOURCE_DIR}/src/translations/strawberry_en_US.ts" OPTIONS -locations none -no-ui-lines -no-obsolete)
|
|
file(GLOB_RECURSE ts_files ${CMAKE_SOURCE_DIR}/src/translations/*.ts)
|
|
set_source_files_properties(${ts_files} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/data")
|
|
if(TRANSLATIONS_VERBOSE)
|
|
qt_add_lrelease(strawberry TS_FILES ${ts_files} QM_FILES_OUTPUT_VARIABLE INSTALL_TRANSLATIONS_FILES)
|
|
else()
|
|
qt_add_lrelease(strawberry TS_FILES ${ts_files} QM_FILES_OUTPUT_VARIABLE INSTALL_TRANSLATIONS_FILES OPTIONS -silent)
|
|
endif()
|
|
if(NOT INSTALL_TRANSLATIONS)
|
|
qt_add_resources(strawberry "translations" PREFIX "/i18n" BASE "${CMAKE_CURRENT_BINARY_DIR}/data" FILES "${INSTALL_TRANSLATIONS_FILES}")
|
|
endif()
|
|
endif()
|
|
|
|
target_include_directories(strawberry_lib PUBLIC
|
|
${CMAKE_SOURCE_DIR}
|
|
${CMAKE_BINARY_DIR}
|
|
${CMAKE_SOURCE_DIR}/src
|
|
${CMAKE_BINARY_DIR}/src
|
|
)
|
|
|
|
if(SINGLEAPPLICATION_INCLUDE_DIRS)
|
|
target_include_directories(strawberry_lib SYSTEM PUBLIC ${SINGLEAPPLICATION_INCLUDE_DIRS})
|
|
endif()
|
|
|
|
target_link_libraries(strawberry_lib PUBLIC
|
|
${CMAKE_THREAD_LIBS_INIT}
|
|
$<$<BOOL:${HAVE_BACKTRACE}>:${Backtrace_LIBRARIES}>
|
|
PkgConfig::GLIB
|
|
PkgConfig::GOBJECT
|
|
PkgConfig::SQLITE
|
|
PkgConfig::GSTREAMER
|
|
PkgConfig::GSTREAMER_BASE
|
|
PkgConfig::GSTREAMER_AUDIO
|
|
PkgConfig::GSTREAMER_APP
|
|
PkgConfig::GSTREAMER_TAG
|
|
PkgConfig::GSTREAMER_PBUTILS
|
|
${TAGLIB_LIBRARIES}
|
|
Qt${QT_VERSION_MAJOR}::Core
|
|
Qt${QT_VERSION_MAJOR}::Concurrent
|
|
Qt${QT_VERSION_MAJOR}::Gui
|
|
Qt${QT_VERSION_MAJOR}::Widgets
|
|
Qt${QT_VERSION_MAJOR}::Network
|
|
Qt${QT_VERSION_MAJOR}::Sql
|
|
$<$<BOOL:${HAVE_DBUS}>:Qt${QT_VERSION_MAJOR}::DBus>
|
|
$<$<BOOL:${HAVE_QPA_QPLATFORMNATIVEINTERFACE}>:Qt${QT_VERSION_MAJOR}::GuiPrivate>
|
|
ICU::uc
|
|
ICU::i18n
|
|
$<$<BOOL:${HAVE_STREAMTAGREADER}>:PkgConfig::LIBSPARSEHASH>
|
|
$<$<BOOL:${HAVE_ALSA}>:ALSA::ALSA>
|
|
$<$<BOOL:${HAVE_PULSE}>:PkgConfig::LIBPULSE>
|
|
$<$<BOOL:${HAVE_CHROMAPRINT}>:PkgConfig::CHROMAPRINT>
|
|
$<$<BOOL:${HAVE_MOODBAR}>:PkgConfig::FFTW3>
|
|
$<$<BOOL:${HAVE_EBUR128}>:PkgConfig::LIBEBUR128>
|
|
$<$<BOOL:${HAVE_X11_GLOBALSHORTCUTS}>:X11::X11_xcb>
|
|
$<$<BOOL:${HAVE_GIO}>:PkgConfig::GIO>
|
|
$<$<BOOL:${HAVE_GIO_UNIX}>:PkgConfig::GIO_UNIX>
|
|
$<$<BOOL:${HAVE_AUDIOCD}>:PkgConfig::LIBCDIO>
|
|
$<$<BOOL:${HAVE_MTP}>:PkgConfig::LIBMTP>
|
|
$<$<BOOL:${HAVE_GPOD}>:PkgConfig::LIBGPOD PkgConfig::GDK_PIXBUF>
|
|
$<$<BOOL:${HAVE_QTSPARKLE}>:qtsparkle-qt${QT_VERSION_MAJOR}::qtsparkle>
|
|
$<$<BOOL:${WIN32}>:dsound dwmapi ${GETOPT_LIBRARIES}>
|
|
$<$<BOOL:${MSVC}>:WindowsApp>
|
|
KDAB::kdsingleapplication
|
|
$<$<BOOL:${HAVE_DISCORD_RPC}>:discord-rpc>
|
|
)
|
|
|
|
if(APPLE)
|
|
target_link_libraries(strawberry_lib PUBLIC
|
|
"-framework Foundation"
|
|
"-framework AppKit"
|
|
"-framework Carbon"
|
|
"-framework CoreAudio"
|
|
"-framework DiskArbitration"
|
|
"-framework IOKit"
|
|
"-framework ScriptingBridge"
|
|
)
|
|
if(HAVE_SPARKLE)
|
|
target_include_directories(strawberry_lib SYSTEM PRIVATE ${SPARKLE}/Headers)
|
|
target_link_libraries(strawberry_lib PRIVATE ${SPARKLE})
|
|
endif()
|
|
endif()
|
|
|
|
target_link_libraries(strawberry PUBLIC strawberry_lib)
|
|
|
|
if(NOT APPLE)
|
|
install(TARGETS strawberry RUNTIME DESTINATION bin)
|
|
endif()
|
|
|
|
if(HAVE_TRANSLATIONS AND INSTALL_TRANSLATIONS AND INSTALL_TRANSLATIONS_FILES)
|
|
install(FILES ${INSTALL_TRANSLATIONS_FILES} DESTINATION share/strawberry/translations)
|
|
endif()
|
|
|
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
|
|
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
|
|
|
optional_component_summary_show()
|
|
|
|
if(NOT CMAKE_CROSSCOMPILING AND NOT QT_SQLITE_TEST)
|
|
message(WARNING "The Qt sqlite driver test failed.")
|
|
endif()
|