diff --git a/3rdparty/singleapplication/CMakeLists.txt b/3rdparty/singleapplication/CMakeLists.txt index 247503e5f..a30e4cc76 100644 --- a/3rdparty/singleapplication/CMakeLists.txt +++ b/3rdparty/singleapplication/CMakeLists.txt @@ -16,11 +16,6 @@ else() qt5_wrap_cpp(SINGLEAPP-SOURCES-MOC ${SINGLEAPP-MOC-HEADERS}) endif() add_library(singleapplication STATIC ${SINGLEAPP-SOURCES} ${SINGLEAPP-SOURCES-MOC}) -target_include_directories(singleapplication SYSTEM PRIVATE - ${QtCore_INCLUDE_DIRS} - ${QtWidgets_INCLUDE_DIRS} - ${QtNetwork_INCLUDE_DIRS} -) target_include_directories(singleapplication PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} @@ -39,10 +34,6 @@ else() qt5_wrap_cpp(SINGLECOREAPP-SOURCES-MOC ${SINGLECOREAPP-MOC-HEADERS}) endif() add_library(singlecoreapplication STATIC ${SINGLECOREAPP-SOURCES} ${SINGLECOREAPP-SOURCES-MOC}) -target_include_directories(singlecoreapplication SYSTEM PRIVATE - ${QtCore_INCLUDE_DIRS} - ${QtNetwork_INCLUDE_DIRS} -) target_include_directories(singlecoreapplication PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} diff --git a/CMakeLists.txt b/CMakeLists.txt index 0bf701fd7..d943074ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -133,6 +133,11 @@ pkg_check_modules(GDK_PIXBUF gdk-pixbuf-2.0) find_package(Gettext) find_package(FFTW3) +if(NOT QT_DEFAULT_MAJOR_VERSION) + set(QT_DEFAULT_MAJOR_VERSION 5) +endif() +set(QT_MAJOR_VERSION ${QT_DEFAULT_MAJOR_VERSION} CACHE STRING "Qt version to use (5 or 6), defaults to ${QT_DEFAULT_MAJOR_VERSION}") + option(BUILD_WITH_QT5 "Use Qt 5" OFF) option(BUILD_WITH_QT6 "Use Qt 6" OFF) @@ -140,8 +145,19 @@ if(WITH_QT6) set(BUILD_WITH_QT6 ON) endif() -if(NOT BUILD_WITH_QT5 AND NOT BUILD_WITH_QT6) - set(BUILD_WITH_QT5 ON) +if(BUILD_WITH_QT5) + set(QT_MAJOR_VERSION 5) +elseif(BUILD_WITH_QT6) + set(QT_MAJOR_VERSION 6) +else() + if(QT_MAJOR_VERSION EQUAL 5) + set(BUILD_WITH_QT5 ON) + elseif(QT_MAJOR_VERSION EQUAL 6) + set(BUILD_WITH_QT6 ON) + else() + set(BUILD_WITH_QT5 ON) + set(QT_MAJOR_VERSION 5) + endif() endif() set(QT_COMPONENTS Core Concurrent Widgets Network Sql) @@ -154,65 +170,39 @@ endif() if(WIN32) list(APPEND QT_COMPONENTS WinExtras) endif() - -if(BUILD_WITH_QT6) +if(QT_MAJOR_VERSION EQUAL 6) list(APPEND QT_COMPONENTS Core5Compat) - find_package(Qt6 REQUIRED COMPONENTS ${QT_COMPONENTS}) - set(QtCore_LIBRARIES Qt6::Core) - set(QtConcurrent_LIBRARIES Qt6::Concurrent) - set(QtWidgets_LIBRARIES Qt6::Widgets) - set(QtNetwork_LIBRARIES Qt6::Network) - set(QtSql_LIBRARIES Qt6::Sql) - set(QT_LIBRARIES Qt6::Core Qt6::Concurrent Qt6::Widgets Qt6::Network Qt6::Sql Qt6::Core5Compat) - if(Qt6DBus_FOUND) - set(QtDBus_LIBRARIES Qt6::DBus) - list(APPEND QT_LIBRARIES Qt6::DBus) - get_target_property(QT_DBUSXML2CPP_EXECUTABLE Qt6::qdbusxml2cpp LOCATION) - endif() - if(Qt6X11Extras_FOUND) - set(QtX11Extras_LIBRARIES Qt6::X11Extras) - list(APPEND QT_LIBRARIES Qt6::X11Extras) - endif() - if(Qt6WinExtras_FOUND) - set(QtWinExtras_LIBRARIES Qt6::WinExtras) - list(APPEND QT_LIBRARIES Qt6::WinExtras) - endif() - find_package(Qt6 QUIET COMPONENTS LinguistTools CONFIG) - if (Qt6LinguistTools_FOUND) - set(QT_LCONVERT_EXECUTABLE Qt6::lconvert) - endif() -elseif(BUILD_WITH_QT5) - set(QT_MIN_VERSION 5.8) - find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS ${QT_COMPONENTS}) - set(QtCore_LIBRARIES ${Qt5Core_LIBRARIES}) - set(QtConcurrent_LIBRARIES ${Qt5Concurrent_LIBRARIES}) - set(QtWidgets_LIBRARIES ${Qt5Widgets_LIBRARIES}) - set(QtNetwork_LIBRARIES ${Qt5Network_LIBRARIES}) - set(QtSql_LIBRARIES ${Qt5Sql_LIBRARIES}) - set(QT_LIBRARIES ${QtCore_LIBRARIES} ${QtConcurrent_LIBRARIES} ${QtWidgets_LIBRARIES} ${QtNetwork_LIBRARIES} ${QtSql_LIBRARIES}) - set(QT_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS} ${Qt5Concurrent_INCLUDE_DIRS} ${Qt5Widgets_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS} ${Qt5Sql_INCLUDE_DIRS}) - if(Qt5DBus_FOUND) - set(QtDBus_LIBRARIES ${Qt5DBus_LIBRARIES}) - list(APPEND QT_LIBRARIES ${Qt5DBus_LIBRARIES}) - list(APPEND QT_INCLUDE_DIRS ${Qt5DBus_INCLUDE_DIRS}) - get_target_property(QT_DBUSXML2CPP_EXECUTABLE Qt5::qdbusxml2cpp LOCATION) - endif() - if(Qt5X11Extras_FOUND) - set(QtX11Extras_LIBRARIES ${Qt5X11Extras_LIBRARIES}) - list(APPEND QT_LIBRARIES ${Qt5X11Extras_LIBRARIES}) - list(APPEND QT_INCLUDE_DIRS ${Qt5X11Extras_INCLUDE_DIRS}) - endif() - if(Qt5WinExtras_FOUND) - set(QtWinExtras_LIBRARIES ${Qt5WinExtras_LIBRARIES}) - list(APPEND QT_LIBRARIES ${Qt5WinExtras_LIBRARIES}) - list(APPEND QT_INCLUDE_DIRS ${Qt5WinExtras_INCLUDE_DIRS}) - endif() - find_package(Qt5 ${QT_MIN_VERSION} QUIET COMPONENTS LinguistTools CONFIG) - if (Qt5LinguistTools_FOUND) - set(QT_LCONVERT_EXECUTABLE Qt5::lconvert) - endif() -else() - message(FATAL_ERROR "Set BUILD_WITH_QT5 or BUILD_WITH_QT6") +endif() + +find_package(Qt${QT_MAJOR_VERSION} REQUIRED COMPONENTS ${QT_COMPONENTS}) + +set(QtCore_LIBRARIES Qt${QT_MAJOR_VERSION}::Core) +set(QtConcurrent_LIBRARIES Qt${QT_MAJOR_VERSION}::Concurrent) +set(QtWidgets_LIBRARIES Qt${QT_MAJOR_VERSION}::Widgets) +set(QtNetwork_LIBRARIES Qt${QT_MAJOR_VERSION}::Network) +set(QtSql_LIBRARIES Qt${QT_MAJOR_VERSION}::Sql) +set(QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Concurrent Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Network Qt${QT_MAJOR_VERSION}::Sql) +if(QT_MAJOR_VERSION EQUAL 6) + set(QtCore5Compat_LIBRARIES Qt${QT_MAJOR_VERSION}::Core5Compat) + list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::Core5Compat) +endif() +if(Qt${QT_MAJOR_VERSION}DBus_FOUND) + set(QtDBus_LIBRARIES Qt${QT_MAJOR_VERSION}::DBus) + list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::DBus) + get_target_property(QT_DBUSXML2CPP_EXECUTABLE Qt${QT_MAJOR_VERSION}::qdbusxml2cpp LOCATION) +endif() +if(Qt${QT_MAJOR_VERSION}X11Extras_FOUND) + set(QtX11Extras_LIBRARIES Qt${QT_MAJOR_VERSION}::X11Extras) + list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::X11Extras) +endif() +if(Qt${QT_MAJOR_VERSION}WinExtras_FOUND) + set(QtWinExtras_LIBRARIES Qt${QT_MAJOR_VERSION}::WinExtras) + list(APPEND QT_LIBRARIES Qt${QT_MAJOR_VERSION}::WinExtras) +endif() + +find_package(Qt${QT_MAJOR_VERSION} QUIET COMPONENTS LinguistTools CONFIG) +if(Qt${QT_MAJOR_VERSION}LinguistTools_FOUND) + set(QT_LCONVERT_EXECUTABLE Qt${QT_MAJOR_VERSION}::lconvert) endif() if(X11_FOUND) @@ -394,7 +384,6 @@ endif(USE_BUNDLE AND NOT USE_BUNDLE_DIR) if(NOT CMAKE_CROSSCOMPILING) set(CMAKE_REQUIRED_FLAGS "--std=c++11") set(CMAKE_REQUIRED_LIBRARIES ${QtCore_LIBRARIES} ${QtSql_LIBRARIES}) - set(CMAKE_REQUIRED_INCLUDES ${QtCore_INCLUDE_DIRS} ${QtSql_INCLUDE_DIRS}) check_cxx_source_runs(" #include #include diff --git a/ext/gstmoodbar/CMakeLists.txt b/ext/gstmoodbar/CMakeLists.txt index cd06532b6..85f849963 100644 --- a/ext/gstmoodbar/CMakeLists.txt +++ b/ext/gstmoodbar/CMakeLists.txt @@ -9,7 +9,6 @@ link_directories( ${GSTREAMER_BASE_LIBRARY_DIRS} ${GSTREAMER_AUDIO_LIBRARY_DIRS} ${FFTW3_LIBRARY_DIRS} - ${QtCore_LIBRARY_DIRS} ) add_library(gstmoodbar STATIC ${SOURCES}) @@ -21,7 +20,6 @@ target_include_directories(gstmoodbar SYSTEM PRIVATE ${GSTREAMER_BASE_INCLUDE_DIRS} ${GSTREAMER_AUDIO_INCLUDE_DIRS} ${FFTW3_INCLUDE_DIR} - ${QtCore_INCLUDE_DIRS} ) target_include_directories(gstmoodbar PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/ext/libstrawberry-common/CMakeLists.txt b/ext/libstrawberry-common/CMakeLists.txt index 354aaaf5e..e704cc410 100644 --- a/ext/libstrawberry-common/CMakeLists.txt +++ b/ext/libstrawberry-common/CMakeLists.txt @@ -28,16 +28,12 @@ endif() link_directories( ${GLIB_LIBRARY_DIRS} - ${QtCore_LIBRARY_DIRS} - ${QtNetwork_LIBRARY_DIRS} ) add_library(libstrawberry-common STATIC ${SOURCES} ${MOC}) target_include_directories(libstrawberry-common SYSTEM PRIVATE ${GLIB_INCLUDE_DIRS} - ${QtCore_INCLUDE_DIRS} - ${QtNetwork_INCLUDE_DIRS} ) target_include_directories(libstrawberry-common PRIVATE diff --git a/ext/libstrawberry-tagreader/CMakeLists.txt b/ext/libstrawberry-tagreader/CMakeLists.txt index 564b0421a..3db36f908 100644 --- a/ext/libstrawberry-tagreader/CMakeLists.txt +++ b/ext/libstrawberry-tagreader/CMakeLists.txt @@ -9,7 +9,6 @@ link_directories( ${GLIB_LIBRARY_DIRS} ${PROTOBUF_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS} - ${Qt5Core_LIBRARY_DIRS} ) add_library(libstrawberry-tagreader STATIC ${PROTO_SOURCES} ${SOURCES}) @@ -17,8 +16,6 @@ add_library(libstrawberry-tagreader STATIC ${PROTO_SOURCES} ${SOURCES}) target_include_directories(libstrawberry-tagreader SYSTEM PRIVATE ${GLIB_INCLUDE_DIRS} ${PROTOBUF_INCLUDE_DIRS} - ${QtCore_INCLUDE_DIRS} - ${QtNetwork_INCLUDE_DIRS} ) target_include_directories(libstrawberry-tagreader PRIVATE diff --git a/ext/strawberry-tagreader/CMakeLists.txt b/ext/strawberry-tagreader/CMakeLists.txt index 2d3570182..6c1c951c2 100644 --- a/ext/strawberry-tagreader/CMakeLists.txt +++ b/ext/strawberry-tagreader/CMakeLists.txt @@ -15,8 +15,6 @@ endif() link_directories( ${GLIB_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS} - ${QtCore_LIBRARY_DIRS} - ${QtNetwork_LIBRARY_DIRS} ) add_executable(strawberry-tagreader ${SOURCES} ${MOC} ${QRC}) @@ -24,8 +22,6 @@ add_executable(strawberry-tagreader ${SOURCES} ${MOC} ${QRC}) target_include_directories(strawberry-tagreader SYSTEM PRIVATE ${GLIB_INCLUDE_DIRS} ${PROTOBUF_INCLUDE_DIRS} - ${QtCore_INCLUDE_DIRS} - ${QtNetwork_INCLUDE_DIRS} ) target_include_directories(strawberry-tagreader PRIVATE diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1613eb98b..7267bc1e8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1033,7 +1033,6 @@ link_directories( ${GNUTLS_LIBRARY_DIRS} ${SQLITE_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS} - ${QT_LIBRARY_DIRS} ${SINGLEAPPLICATION_LIBRARY_DIRS} ${SINGLECOREAPPLICATION_LIBRARY_DIRS} ${QTSPARKLE_LIBRARY_DIRS} @@ -1108,7 +1107,6 @@ target_include_directories(strawberry_lib SYSTEM PUBLIC ${GOBJECT_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIRS} ${SQLITE_INCLUDE_DIRS} - ${QT_INCLUDE_DIRS} ) target_include_directories(strawberry_lib PUBLIC diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 07e0db084..792f9eb17 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,7 +31,6 @@ endif() link_directories( ${SQLITE_LIBRARY_DIRS} ${TAGLIB_LIBRARY_DIRS} - ${QT_LIBRARY_DIRS} ) if(HAVE_GSTREAMER) @@ -61,7 +60,6 @@ add_library(test_utils STATIC EXCLUDE_FROM_ALL ${TESTUTILS-SOURCES} ${TESTUTILS- target_include_directories(test_utils SYSTEM PRIVATE ${GTEST_INCLUDE_DIRS} ${GMOCK_INCLUDE_DIRS} - ${QT_INCLUDE_DIRS} ) target_include_directories(test_utils PRIVATE ${CMAKE_BINARY_DIR}/src @@ -89,7 +87,6 @@ else() endif() add_library(test_gui_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp) -target_include_directories(test_gui_main SYSTEM PRIVATE ${QT_INCLUDE_DIRS}) target_include_directories(test_gui_main PRIVATE ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src @@ -104,7 +101,6 @@ target_link_libraries(test_gui_main PRIVATE strawberry_lib) set_target_properties(test_gui_main PROPERTIES COMPILE_DEFINITIONS GUI) add_library(test_main STATIC EXCLUDE_FROM_ALL ${TEST-RESOURCE-SOURCES} src/main.cpp) -target_include_directories(test_main SYSTEM PRIVATE ${QT_INCLUDE_DIRS}) target_include_directories(test_main PRIVATE ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src @@ -124,7 +120,6 @@ macro(add_test_file test_source gui_required) target_include_directories(${TEST_NAME} SYSTEM PRIVATE ${GTEST_INCLUDE_DIRS} ${GMOCK_INCLUDE_DIRS} - ${QT_INCLUDE_DIRS} ) target_include_directories(${TEST_NAME} PRIVATE ${CMAKE_BINARY_DIR}/src