aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOPNA2608 <opna2608@protonmail.com>2026-03-26 14:14:24 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2026-06-11 20:55:49 +0200
commitf619b88dbac8ad009ca5f5cddb696f32878d0f72 (patch)
tree9508dc301a5b68b0e09ad1863b0856846e8e6b3b
parentf33cda5c57dab104163fe6884e2e15f3bac79c07 (diff)
downloadqmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.tar.gz
qmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.tar.bz2
qmenumodel-f619b88dbac8ad009ca5f5cddb696f32878d0f72.zip
treewide: Allow Qt6 build to be configured via CMake
-rw-r--r--CMakeLists.txt16
-rw-r--r--examples/CMakeLists.txt15
-rw-r--r--libqmenumodel/QMenuModel/CMakeLists.txt8
-rw-r--r--libqmenumodel/src/CMakeLists.txt9
-rw-r--r--libqmenumodel/src/qmenumodel.pc.in2
-rw-r--r--tests/CMakeLists.txt5
-rw-r--r--tests/client/CMakeLists.txt22
-rw-r--r--tests/script/CMakeLists.txt2
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)