diff options
| author | OPNA2608 <opna2608@protonmail.com> | 2026-03-26 14:14:24 +0100 |
|---|---|---|
| committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2026-06-11 20:55:49 +0200 |
| commit | f619b88dbac8ad009ca5f5cddb696f32878d0f72 (patch) | |
| tree | 9508dc301a5b68b0e09ad1863b0856846e8e6b3b | |
| parent | f33cda5c57dab104163fe6884e2e15f3bac79c07 (diff) | |
| download | qmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.tar.gz qmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.tar.bz2 qmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.zip | |
treewide: Allow Qt6 build to be configured via CMake
| -rw-r--r-- | CMakeLists.txt | 16 | ||||
| -rw-r--r-- | examples/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | libqmenumodel/QMenuModel/CMakeLists.txt | 8 | ||||
| -rw-r--r-- | libqmenumodel/src/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | libqmenumodel/src/qmenumodel.pc.in | 2 | ||||
| -rw-r--r-- | tests/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | tests/client/CMakeLists.txt | 22 | ||||
| -rw-r--r-- | tests/script/CMakeLists.txt | 2 |
8 files changed, 45 insertions, 34 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a144b0d..a816d4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,12 +6,22 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) # Options +option(ENABLE_QT6 "Enable building with Qt6" OFF) option(ENABLE_TESTS "Enable all tests and checks" OFF) option(ENABLE_COVERAGE "Enable coverage reports (includes enabling all tests and checks)" OFF) option(ENABLE_WERROR "Treat all build warnings as errors" OFF) option(TEST_XML_OUTPUT "Print test results to xml files" OFF) option(GENERATE_DOC "Enable qdoc generation" OFF) +set(QT_VERSION_MAJOR 5) +set(QMENUMODEL_LIB_SUFFIX) +set(QMENUMODEL_PKGCONFIG_SUFFIX) +if(ENABLE_QT6) + set(QT_VERSION_MAJOR 6) + string(APPEND QMENUMODEL_LIB_SUFFIX "-qt6") + string(APPEND QMENUMODEL_PKGCONFIG_SUFFIX "-qt6") +endif() + if(ENABLE_COVERAGE) set(ENABLE_TESTS ON) set(CMAKE_BUILD_TYPE "Coverage") @@ -35,9 +45,8 @@ endif() # Standard install paths include(GNUInstallDirs) -find_package(Qt5Core REQUIRED) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Gui REQUIRED) +find_package(QT NAMES Qt${QT_VERSION_MAJOR}) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui Qml Quick) include(FindPkgConfig) pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32) pkg_check_modules(GIO REQUIRED gio-2.0>=2.32) @@ -48,6 +57,7 @@ add_subdirectory(libqmenumodel) # Tests if (ENABLE_TESTS) + find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS DBus Test Widgets) find_program(DBUS_RUNNER dbus-test-runner REQUIRED) enable_testing() if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l") diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 67e1348..2fcfd30 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -7,13 +7,22 @@ cmake_minimum_required(VERSION 2.8.9) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_AUTOMOC ON) -find_package(Qt5Core REQUIRED) +option(ENABLE_QT6 "Enable building with Qt6" OFF) +set(QT_VERSION_MAJOR 5) +set(QMENUMODEL_PKGCONFIG_SUFFIX) +if(ENABLE_QT6) + set(QT_VERSION_MAJOR 6) + string(APPEND QMENUMODEL_PKGCONFIG_SUFFIX "-qt6") +endif() + +find_package(QT NAMES Qt${QT_VERSION_MAJOR}) +find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core) include(FindPkgConfig) -pkg_check_modules(QMENUMODEL REQUIRED qmenumodel) +pkg_check_modules(QMENUMODEL REQUIRED qmenumodel${QMENUMODEL_PKGCONFIG_SUFFIX}) add_executable(info-menumodel info-menumodel.cpp) include_directories(${QMENUMODEL_INCLUDE_DIRS}) -target_link_libraries(info-menumodel ${QMENUMODEL_LDFLAGS} Qt5::Core) +target_link_libraries(info-menumodel ${QMENUMODEL_LDFLAGS} Qt::Core) diff --git a/libqmenumodel/QMenuModel/CMakeLists.txt b/libqmenumodel/QMenuModel/CMakeLists.txt index 86ccd11..b4f28dd 100644 --- a/libqmenumodel/QMenuModel/CMakeLists.txt +++ b/libqmenumodel/QMenuModel/CMakeLists.txt @@ -13,19 +13,17 @@ include_directories( ${GLIB_INCLUDE_DIRS} ) -find_package(Qt5Qml REQUIRED) -find_package(Qt5Quick REQUIRED) target_link_libraries(qmenumodel-qml - qmenumodel + qmenumodel${QMENUMODEL_LIB_SUFFIX} ${GLIB_LDFLAGS} ${GIO_LDFLAGS} - Qt5::Qml Qt5::Quick + Qt::Qml Qt::Quick ) execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/qmldir" "${CMAKE_CURRENT_BINARY_DIR}/qmldir") -set(QT_IMPORTS_DIR "${CMAKE_INSTALL_LIBDIR}/qt5/qml") +set(QT_IMPORTS_DIR "${CMAKE_INSTALL_LIBDIR}/qt${QT_VERSION_MAJOR}/qml") set(QMLPLUGIN_INSTALL_PREFIX "${QT_IMPORTS_DIR}/QMenuModel.1") install(TARGETS qmenumodel-qml DESTINATION ${QMLPLUGIN_INSTALL_PREFIX}) install(FILES qmldir DESTINATION ${QMLPLUGIN_INSTALL_PREFIX}) diff --git a/libqmenumodel/src/CMakeLists.txt b/libqmenumodel/src/CMakeLists.txt index a3a87cc..a606b53 100644 --- a/libqmenumodel/src/CMakeLists.txt +++ b/libqmenumodel/src/CMakeLists.txt @@ -29,7 +29,7 @@ set(QMENUMODEL_SRC gtk/gtkmenutrackeritem.h ) -set(SHAREDLIBNAME qmenumodel) +set(SHAREDLIBNAME qmenumodel${QMENUMODEL_LIB_SUFFIX}) add_library(${SHAREDLIBNAME} SHARED ${QMENUMODEL_SRC} ) @@ -45,11 +45,10 @@ include_directories( ${GIO_INCLUDE_DIRS} ) -find_package(Qt5Quick REQUIRED) target_link_libraries(${SHAREDLIBNAME} ${GLIB_LDFLAGS} ${GIO_LDFLAGS} - Qt5::Core Qt5::Qml Qt5::Quick + Qt::Core Qt::Qml Qt::Quick ) install(TARGETS ${SHAREDLIBNAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) @@ -71,8 +70,8 @@ install(FILES ${QMENUMODEL_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${INCLUDEDIR} ) -set(PCFILE qmenumodel.pc) -configure_file(${PCFILE}.in ${CMAKE_CURRENT_BINARY_DIR}/${PCFILE} @ONLY) +set(PCFILE qmenumodel${QMENUMODEL_PKGCONFIG_SUFFIX}.pc) +configure_file(qmenumodel.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${PCFILE} @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PCFILE} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) diff --git a/libqmenumodel/src/qmenumodel.pc.in b/libqmenumodel/src/qmenumodel.pc.in index d5a497a..9dc1914 100644 --- a/libqmenumodel/src/qmenumodel.pc.in +++ b/libqmenumodel/src/qmenumodel.pc.in @@ -7,7 +7,7 @@ Name: qmenumodel Description: Qt binding for GMenuModel. Version: @CMAKE_PROJECT_VERSION@ -Requires.private: Qt5Core Qt5Widgets gio-2.0 +Requires.private: Qt@QT_VERSION_MAJOR@Core Qt@QT_VERSION_MAJOR@Widgets gio-2.0 Libs: -L${libdir} -l@SHAREDLIBNAME@ Cflags: -I${includedir}/@INCLUDEDIR@ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0e94a94..96c4bad 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,7 +1,2 @@ -find_package(Qt5Quick REQUIRED)
-find_package(Qt5Test REQUIRED)
-find_package(Qt5Widgets REQUIRED)
-find_package(Qt5DBus REQUIRED)
-
add_subdirectory(script)
add_subdirectory(client)
diff --git a/tests/client/CMakeLists.txt b/tests/client/CMakeLists.txt index 05d31f3..8a0ed49 100644 --- a/tests/client/CMakeLists.txt +++ b/tests/client/CMakeLists.txt @@ -1,16 +1,16 @@ macro(declare_test testname)
add_executable(${testname} ${testname}.cpp)
target_link_libraries(${testname}
- qmenumodel
+ qmenumodel${QMENUMODEL_LIB_SUFFIX}
dbusmenuscript
${GLIB_LDFLAGS}
${GIO_LDFLAGS}
- Qt5::Core
- Qt5::DBus
- Qt5::Widgets
- Qt5::Test
- Qt5::Qml
- Qt5::Quick
+ Qt::Core
+ Qt::DBus
+ Qt::Widgets
+ Qt::Test
+ Qt::Qml
+ Qt::Quick
)
if(TEST_XML_OUTPUT)
@@ -34,11 +34,11 @@ endmacro(declare_test testname) macro(declare_simple_test testname)
add_executable(${testname} ${testname}.cpp)
target_link_libraries(${testname}
- qmenumodel
+ qmenumodel${QMENUMODEL_LIB_SUFFIX}
${GLIB_LDFLAGS}
${GIO_LDFLAGS}
- Qt5::Core
- Qt5::Test
+ Qt::Core
+ Qt::Test
)
add_test(${testname}
@@ -76,7 +76,7 @@ if (ENABLE_COVERAGE) find_package(CoverageReport)
ENABLE_COVERAGE_REPORT(
TARGETS
- qmenumodel
+ qmenumodel${QMENUMODEL_LIB_SUFFIX}
FILTER
${CMAKE_SOURCE_DIR}/tests/*
${CMAKE_BINARY_DIR}/*
diff --git a/tests/script/CMakeLists.txt b/tests/script/CMakeLists.txt index fc0db8a..37e72ab 100644 --- a/tests/script/CMakeLists.txt +++ b/tests/script/CMakeLists.txt @@ -4,5 +4,5 @@ add_library(dbusmenuscript STATIC dbusmenuscript.cpp) set_target_properties(dbusmenuscript PROPERTIES COMPILE_FLAGS -fPIC) -target_link_libraries(dbusmenuscript Qt5::Core Qt5::DBus Qt5::Test) +target_link_libraries(dbusmenuscript Qt::Core Qt::DBus Qt::Test) |
