From 09d4f8ed4f7db0565c74784014261f0ff8d365a4 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Thu, 2 Feb 2023 16:37:52 +0100 Subject: Re-enable dbus xml generation from source Somehow qdbuscpp2xml is unable to cope with QT_PREPEND_NAMESPACE_AM in Qt6, so we need to detect it and work around the issue. Long-term the tool needs a Q_DBUSCPP2XML_RUN define, to make the identification of this pre-compiler more robust. Change-Id: I88fd50669e7e5c9942fbc96c02aa452cda5171c8 Reviewed-by: Dominik Holland (cherry picked from commit 41bb52b0a2b02628247a4afd2513aa52a6da5cf6) Reviewed-by: Qt Cherry-pick Bot --- src/dbus-lib/CMakeLists.txt | 31 +++++++++++++++++++++---------- src/manager-lib/applicationmanager.h | 5 +++++ src/manager-lib/packagemanager.h | 5 +++++ src/window-lib/windowmanager.h | 5 +++++ 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/dbus-lib/CMakeLists.txt b/src/dbus-lib/CMakeLists.txt index e34fcffc..419c2f6f 100644 --- a/src/dbus-lib/CMakeLists.txt +++ b/src/dbus-lib/CMakeLists.txt @@ -26,16 +26,6 @@ qt_internal_add_module(AppManDBusPrivate AM_COMPILING_APPMAN ) -# QMAKE_EXTRA_TARGETS = "recreate-dbus-xml" "recreate-applicationmanager-dbus-xml" "recreate-packagemanager-dbus-xml" "recreate-windowmanager-dbus-xml" -# recreate-applicationmanager-dbus-xml.CONFIG = "phony" -# recreate-applicationmanager-dbus-xml.commands = "$$QDBUSCPP2XML" "-a" "$$PWD/../manager-lib/applicationmanager.h" "-o" "$$PWD/io.qt.applicationmanager.xml" -# recreate-dbus-xml.depends = "recreate-applicationmanager-dbus-xml" "recreate-applicationinstaller-dbus-xml" "recreate-windowmanager-dbus-xml" -# recreate-packagemanager-dbus-xml.CONFIG = "phony" -# recreate-packagemanager-dbus-xml.commands = "$$QDBUSCPP2XML" "-a" "$$PWD/../manager-lib/packagemanager.h" "-o" "$$PWD/io.qt.packagemanager.xml" -# recreate-windowmanager-dbus-xml.CONFIG = "phony" -# recreate-windowmanager-dbus-xml.commands = "$$QDBUSCPP2XML" "-a" "$$PWD/../manager/windowmanager.h" "-o" "$$PWD/io.qt.windowmanager.xml" - - qtam_internal_add_dbus_adaptor(AppManDBusPrivate DBUS_ADAPTOR_SOURCES io.qt.applicationmanager.xml @@ -67,3 +57,24 @@ add_custom_target("DBus-Interface-XMLs" SOURCES io.qt.windowmanager.xml org.freedesktop.notifications.xml ) + +qt_generate_dbus_interface( + ${CMAKE_CURRENT_SOURCE_DIR}/../manager-lib/applicationmanager.h + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.applicationmanager.xml.regen +) + +qt_generate_dbus_interface( + ${CMAKE_CURRENT_SOURCE_DIR}/../manager-lib/packagemanager.h + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.packagemanager.xml.regen +) + +qt_generate_dbus_interface( + ${CMAKE_CURRENT_SOURCE_DIR}/../window-lib/windowmanager.h + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.windowmanager.xml.regen +) + +add_custom_target(dbus_xml_regen DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.applicationmanager.xml.regen + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.packagemanager.xml.regen + ${CMAKE_CURRENT_BINARY_DIR}/io.qt.windowmanager.xml.regen +) diff --git a/src/manager-lib/applicationmanager.h b/src/manager-lib/applicationmanager.h index 894cbc78..2c7f20a7 100644 --- a/src/manager-lib/applicationmanager.h +++ b/src/manager-lib/applicationmanager.h @@ -12,6 +12,11 @@ #include #include +#if defined(Q_MOC_RUN) && !defined(__attribute__) && !defined(__declspec) +# define QT_PREPEND_NAMESPACE_AM(name) QtAM::name +# error "This pre-processor scope is for qdbuscpp2xml only, but it seems something else triggered it" +#endif + QT_FORWARD_DECLARE_CLASS(QDir) QT_FORWARD_DECLARE_CLASS(QQmlEngine) QT_FORWARD_DECLARE_CLASS(QJSEngine) diff --git a/src/manager-lib/packagemanager.h b/src/manager-lib/packagemanager.h index 9b48a2ee..f54e56e5 100644 --- a/src/manager-lib/packagemanager.h +++ b/src/manager-lib/packagemanager.h @@ -15,6 +15,11 @@ # include #endif +#if defined(Q_MOC_RUN) && !defined(__attribute__) && !defined(__declspec) +# define QT_PREPEND_NAMESPACE_AM(name) QtAM::name +# error "This pre-processor scope is for qdbuscpp2xml only, but it seems something else triggered it" +#endif + QT_FORWARD_DECLARE_CLASS(QQmlEngine) QT_FORWARD_DECLARE_CLASS(QJSEngine) diff --git a/src/window-lib/windowmanager.h b/src/window-lib/windowmanager.h index 678ac700..6755d3c2 100644 --- a/src/window-lib/windowmanager.h +++ b/src/window-lib/windowmanager.h @@ -9,6 +9,11 @@ #include #include +#if defined(Q_MOC_RUN) && !defined(__attribute__) && !defined(__declspec) +# define QT_PREPEND_NAMESPACE_AM(name) QtAM::name +# error "This pre-processor scope is for qdbuscpp2xml only, but it seems something else triggered it" +#endif + #if defined(AM_MULTI_PROCESS) QT_FORWARD_DECLARE_CLASS(QWaylandSurface) #endif -- cgit v1.2.1