summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griebl <robert.griebl@qt.io>2023-02-02 16:37:52 +0100
committerRobert Griebl <robert.griebl@qt.io>2023-02-15 15:08:07 +0100
commit41bb52b0a2b02628247a4afd2513aa52a6da5cf6 (patch)
tree3d72bd6d7c7721d5a2552ed803e78cc59c8237d4
parent57b50755515410b94957af7e5ca667eda359c70a (diff)
downloadqtapplicationmanager-41bb52b0a2b02628247a4afd2513aa52a6da5cf6.tar.gz
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. Pick-to: 6.5 Change-Id: I88fd50669e7e5c9942fbc96c02aa452cda5171c8 Reviewed-by: Dominik Holland <dominik.holland@qt.io>
-rw-r--r--src/dbus-lib/CMakeLists.txt31
-rw-r--r--src/manager-lib/applicationmanager.h5
-rw-r--r--src/manager-lib/packagemanager.h5
-rw-r--r--src/window-lib/windowmanager.h5
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 <QtAppManCommon/global.h>
#include <QtAppManManager/application.h>
+#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 <QtAppManManager/deinstallationtask.h>
#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 <QtCore/QAbstractListModel>
#include <QtAppManCommon/global.h>
+#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