247 lines
8.6 KiB
Diff
247 lines
8.6 KiB
Diff
|
From 8baa121ea1a2af0ffd81c6b2514b7e7d80d06cd5 Mon Sep 17 00:00:00 2001
|
||
|
From: Matt <144846910+mattkdab@users.noreply.github.com>
|
||
|
Date: Tue, 26 Mar 2024 12:55:26 -0400
|
||
|
Subject: [PATCH] Fix build on 6.7 for after QDeferredDeleteEvent export
|
||
|
reversion (#957)
|
||
|
|
||
|
In the next 6.7 release, this reversion will be done:
|
||
|
https://codereview.qt-project.org/c/qt/qtbase/+/544223
|
||
|
which will break building GammaRay against 6.7
|
||
|
Use static_cast in an explicit specialization
|
||
|
GammaRay::DynamicCast<QDeferredDeleteEvent *, QEvent>
|
||
|
to avoid missing typeinfo errors from linker
|
||
|
|
||
|
* Fix build on 6.7 for after QDeferredDeleteEvent export reversion
|
||
|
|
||
|
* [pre-commit.ci] auto fixes from pre-commit.com hooks
|
||
|
|
||
|
for more information, see https://pre-commit.ci
|
||
|
|
||
|
* Followup #957: Remove unneeded include
|
||
|
|
||
|
* Followup #957: check qt version before including qcoreevent_p
|
||
|
|
||
|
* Followup #957: QtGlobal for version check
|
||
|
|
||
|
* Followup #957: qt5 ci fix: include metatypedecl in metaprop
|
||
|
|
||
|
* Followup #957: GuiPrivate -> CorePrivate, comment
|
||
|
|
||
|
Requested by @redstrate
|
||
|
|
||
|
* [pre-commit.ci] auto fixes from pre-commit.com hooks
|
||
|
|
||
|
for more information, see https://pre-commit.ci
|
||
|
|
||
|
* Followup #957: Remove now-unneeded additions
|
||
|
|
||
|
Caught by Waqar in his review.
|
||
|
|
||
|
---------
|
||
|
|
||
|
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
|
||
|
---
|
||
|
core/typetraits.h | 13 +++++++++++++
|
||
|
plugins/actioninspector/CMakeLists.txt | 8 +++++++-
|
||
|
plugins/bluetooth/CMakeLists.txt | 2 +-
|
||
|
plugins/openglsupport/CMakeLists.txt | 2 +-
|
||
|
plugins/positioning/CMakeLists.txt | 2 +-
|
||
|
plugins/qt3dinspector/CMakeLists.txt | 1 +
|
||
|
plugins/quickwidgetsupport/CMakeLists.txt | 2 +-
|
||
|
plugins/sceneinspector/CMakeLists.txt | 1 +
|
||
|
plugins/textdocumentinspector/CMakeLists.txt | 2 +-
|
||
|
plugins/widgetinspector/CMakeLists.txt | 1 +
|
||
|
plugins/wlcompositorinspector/CMakeLists.txt | 1 +
|
||
|
tests/CMakeLists.txt | 8 ++++++--
|
||
|
12 files changed, 35 insertions(+), 8 deletions(-)
|
||
|
|
||
|
diff --git a/core/typetraits.h b/core/typetraits.h
|
||
|
index 20397af..4195e99 100644
|
||
|
--- a/core/typetraits.h
|
||
|
+++ b/core/typetraits.h
|
||
|
@@ -15,6 +15,11 @@
|
||
|
#define GAMMARAY_TYPETRAITS_H
|
||
|
|
||
|
#include <type_traits>
|
||
|
+#include <QtGlobal>
|
||
|
+// Needed for QDeferredDeleteEvent after Qt 6.7
|
||
|
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
|
||
|
+#include <private/qcoreevent_p.h>
|
||
|
+#endif
|
||
|
|
||
|
namespace GammaRay {
|
||
|
|
||
|
@@ -27,6 +32,14 @@ Out DynamicCast(In *in)
|
||
|
return dynamic_cast<Out>(in);
|
||
|
}
|
||
|
|
||
|
+#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
|
||
|
+template<>
|
||
|
+inline QDeferredDeleteEvent *DynamicCast<QDeferredDeleteEvent *, QEvent>(QEvent *in)
|
||
|
+{
|
||
|
+ return static_cast<QDeferredDeleteEvent *>(in);
|
||
|
+}
|
||
|
+#endif
|
||
|
+
|
||
|
///@cond internal
|
||
|
template<typename Out>
|
||
|
Out DynamicCast(void *)
|
||
|
diff --git a/plugins/actioninspector/CMakeLists.txt b/plugins/actioninspector/CMakeLists.txt
|
||
|
index 134c3d4..87ceeef 100644
|
||
|
--- a/plugins/actioninspector/CMakeLists.txt
|
||
|
+++ b/plugins/actioninspector/CMakeLists.txt
|
||
|
@@ -18,7 +18,13 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
${gammaray_actioninspector_plugin_srcs}
|
||
|
)
|
||
|
|
||
|
- target_link_libraries(gammaray_actioninspector_plugin Qt::Gui Qt::Widgets gammaray_core)
|
||
|
+ target_link_libraries(
|
||
|
+ gammaray_actioninspector_plugin
|
||
|
+ Qt::Gui
|
||
|
+ Qt::CorePrivate
|
||
|
+ Qt::Widgets
|
||
|
+ gammaray_core
|
||
|
+ )
|
||
|
endif()
|
||
|
|
||
|
# ui part
|
||
|
diff --git a/plugins/bluetooth/CMakeLists.txt b/plugins/bluetooth/CMakeLists.txt
|
||
|
index a5c2392..951000e 100644
|
||
|
--- a/plugins/bluetooth/CMakeLists.txt
|
||
|
+++ b/plugins/bluetooth/CMakeLists.txt
|
||
|
@@ -15,6 +15,6 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
SOURCES
|
||
|
bluetooth.cpp
|
||
|
)
|
||
|
- target_link_libraries(gammaray_bluetooth gammaray_core Qt::Bluetooth)
|
||
|
+ target_link_libraries(gammaray_bluetooth gammaray_core Qt::Bluetooth Qt::CorePrivate)
|
||
|
set_target_properties(gammaray_bluetooth PROPERTIES DISABLE_PRECOMPILE_HEADERS ON)
|
||
|
endif()
|
||
|
diff --git a/plugins/openglsupport/CMakeLists.txt b/plugins/openglsupport/CMakeLists.txt
|
||
|
index e5614be..f610a46 100644
|
||
|
--- a/plugins/openglsupport/CMakeLists.txt
|
||
|
+++ b/plugins/openglsupport/CMakeLists.txt
|
||
|
@@ -15,7 +15,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
SOURCES
|
||
|
openglsupport.cpp
|
||
|
)
|
||
|
- target_link_libraries(gammaray_openglsupport gammaray_core Qt::Gui)
|
||
|
+ target_link_libraries(gammaray_openglsupport gammaray_core Qt::Gui Qt::CorePrivate)
|
||
|
if(TARGET Qt6::OpenGL)
|
||
|
target_link_libraries(gammaray_openglsupport Qt6::OpenGL)
|
||
|
endif()
|
||
|
diff --git a/plugins/positioning/CMakeLists.txt b/plugins/positioning/CMakeLists.txt
|
||
|
index e19616a..8ea8bdd 100644
|
||
|
--- a/plugins/positioning/CMakeLists.txt
|
||
|
+++ b/plugins/positioning/CMakeLists.txt
|
||
|
@@ -16,7 +16,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
SOURCES
|
||
|
${gammaray_positioning_srcs}
|
||
|
)
|
||
|
- target_link_libraries(gammaray_positioning gammaray_core Qt::Positioning)
|
||
|
+ target_link_libraries(gammaray_positioning gammaray_core Qt::Positioning Qt::CorePrivate)
|
||
|
set_target_properties(gammaray_positioning PROPERTIES DISABLE_PRECOMPILE_HEADERS ON)
|
||
|
|
||
|
# proxy geo position info source factory
|
||
|
diff --git a/plugins/qt3dinspector/CMakeLists.txt b/plugins/qt3dinspector/CMakeLists.txt
|
||
|
index ab514d9..31bed03 100644
|
||
|
--- a/plugins/qt3dinspector/CMakeLists.txt
|
||
|
+++ b/plugins/qt3dinspector/CMakeLists.txt
|
||
|
@@ -33,6 +33,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
gammaray_kitemmodels
|
||
|
Qt::3DInput
|
||
|
Qt::3DRender
|
||
|
+ Qt::CorePrivate
|
||
|
)
|
||
|
if(TARGET Qt::3DAnimation)
|
||
|
target_link_libraries(gammaray_3dinspector Qt::3DAnimation)
|
||
|
diff --git a/plugins/quickwidgetsupport/CMakeLists.txt b/plugins/quickwidgetsupport/CMakeLists.txt
|
||
|
index 99b1211..1dcbc19 100644
|
||
|
--- a/plugins/quickwidgetsupport/CMakeLists.txt
|
||
|
+++ b/plugins/quickwidgetsupport/CMakeLists.txt
|
||
|
@@ -16,5 +16,5 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
SOURCES
|
||
|
${gammaray_quickwidgetsupport_srcs}
|
||
|
)
|
||
|
- target_link_libraries(gammaray_quickwidgetsupport gammaray_core Qt::QuickWidgets)
|
||
|
+ target_link_libraries(gammaray_quickwidgetsupport gammaray_core Qt::QuickWidgets Qt::CorePrivate)
|
||
|
endif()
|
||
|
diff --git a/plugins/sceneinspector/CMakeLists.txt b/plugins/sceneinspector/CMakeLists.txt
|
||
|
index 8ebbfd8..2de614b 100644
|
||
|
--- a/plugins/sceneinspector/CMakeLists.txt
|
||
|
+++ b/plugins/sceneinspector/CMakeLists.txt
|
||
|
@@ -23,6 +23,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
target_link_libraries(
|
||
|
gammaray_sceneinspector_plugin
|
||
|
Qt::Gui
|
||
|
+ Qt::CorePrivate
|
||
|
Qt::Widgets
|
||
|
gammaray_kitemmodels
|
||
|
gammaray_core
|
||
|
diff --git a/plugins/textdocumentinspector/CMakeLists.txt b/plugins/textdocumentinspector/CMakeLists.txt
|
||
|
index 1e5f3a9..655f351 100644
|
||
|
--- a/plugins/textdocumentinspector/CMakeLists.txt
|
||
|
+++ b/plugins/textdocumentinspector/CMakeLists.txt
|
||
|
@@ -17,7 +17,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
${gammaray_textdocumentinspector_srcs}
|
||
|
)
|
||
|
target_link_libraries(gammaray_textdocumentinspector gammaray_core)
|
||
|
- target_link_libraries(gammaray_textdocumentinspector Qt::Gui)
|
||
|
+ target_link_libraries(gammaray_textdocumentinspector Qt::Gui Qt::CorePrivate)
|
||
|
endif()
|
||
|
|
||
|
# ui plugin
|
||
|
diff --git a/plugins/widgetinspector/CMakeLists.txt b/plugins/widgetinspector/CMakeLists.txt
|
||
|
index 18b2897..019aa5d 100644
|
||
|
--- a/plugins/widgetinspector/CMakeLists.txt
|
||
|
+++ b/plugins/widgetinspector/CMakeLists.txt
|
||
|
@@ -30,6 +30,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
target_link_libraries(
|
||
|
gammaray_widgetinspector_plugin
|
||
|
Qt::Gui
|
||
|
+ Qt::CorePrivate
|
||
|
Qt::Widgets
|
||
|
gammaray_kitemmodels
|
||
|
gammaray_core
|
||
|
diff --git a/plugins/wlcompositorinspector/CMakeLists.txt b/plugins/wlcompositorinspector/CMakeLists.txt
|
||
|
index 9d8c0e5..144d23b 100644
|
||
|
--- a/plugins/wlcompositorinspector/CMakeLists.txt
|
||
|
+++ b/plugins/wlcompositorinspector/CMakeLists.txt
|
||
|
@@ -31,6 +31,7 @@ if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
gammaray_core
|
||
|
gammaray_kitemmodels
|
||
|
Qt::WaylandCompositor
|
||
|
+ Qt::CorePrivate
|
||
|
Wayland::Server
|
||
|
)
|
||
|
|
||
|
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
|
||
|
index 6057ffd..608b585 100644
|
||
|
--- a/tests/CMakeLists.txt
|
||
|
+++ b/tests/CMakeLists.txt
|
||
|
@@ -231,7 +231,7 @@ target_link_libraries(
|
||
|
|
||
|
gammaray_add_test(metaobjecttest metaobjecttest.cpp)
|
||
|
target_link_libraries(
|
||
|
- metaobjecttest gammaray_core
|
||
|
+ metaobjecttest Qt::CorePrivate gammaray_core
|
||
|
)
|
||
|
|
||
|
if(NOT GAMMARAY_CLIENT_ONLY_BUILD)
|
||
|
@@ -257,7 +257,11 @@ target_link_libraries(
|
||
|
|
||
|
gammaray_add_test(propertyadaptortest propertyadaptortest.cpp)
|
||
|
target_link_libraries(
|
||
|
- propertyadaptortest gammaray_core Qt::Gui gammaray_shared_test_data
|
||
|
+ propertyadaptortest
|
||
|
+ gammaray_core
|
||
|
+ Qt::Gui
|
||
|
+ Qt::CorePrivate
|
||
|
+ gammaray_shared_test_data
|
||
|
)
|
||
|
|
||
|
if(HAVE_QT_WIDGETS)
|
||
|
--
|
||
|
2.44.0
|
||
|
|