1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
|
From 12f83062b01d5ba946e6f98503b72d4e58721aa4 Mon Sep 17 00:00:00 2001
From: Aleix Pol Gonzalez <aleixpol@kde.org>
Date: Tue, 6 Apr 2021 23:54:52 +0000
Subject: [PATCH] Only wrap flatpak.h includes in extern "C" with older
versions
Seems to be the only way to be compatible backwards and forwards.
---
CMakeLists.txt | 1 -
.../backends/FlatpakBackend/CMakeLists.txt | 6 ++++++
.../backends/FlatpakBackend/FlatpakBackend.h | 4 +---
.../FlatpakBackend/FlatpakFetchDataJob.h | 4 +---
.../FlatpakBackend/FlatpakJobTransaction.cpp | 3 ---
.../FlatpakBackend/FlatpakJobTransaction.h | 4 +---
.../backends/FlatpakBackend/FlatpakNotifier.h | 4 +---
.../backends/FlatpakBackend/FlatpakResource.h | 4 +---
.../FlatpakBackend/FlatpakSourcesBackend.h | 4 +---
.../FlatpakBackend/FlatpakTransactionThread.h | 4 +---
.../backends/FlatpakBackend/flatpak-helper.h | 18 ++++++++++++++++++
.../backends/FwupdBackend/CMakeLists.txt | 3 +++
.../backends/FwupdBackend/FwupdBackend.h | 5 +++++
13 files changed, 39 insertions(+), 25 deletions(-)
create mode 100644 libdiscover/backends/FlatpakBackend/flatpak-helper.h
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 889ded6c..a531d4de 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,7 +37,6 @@ pkg_check_modules(Fwupd IMPORTED_TARGET fwupd>=1.5.0)
pkg_check_modules(Markdown IMPORTED_TARGET libmarkdown)
find_package(KUserFeedback)
-
if(NOT CMAKE_VERSION VERSION_LESS "3.10.0")
# CMake 3.9+ warns about automoc on files without Q_OBJECT, and doesn't know about other macros.
# 3.10+ lets us provide more macro names that require automoc.
diff --git a/libdiscover/backends/FlatpakBackend/CMakeLists.txt b/libdiscover/backends/FlatpakBackend/CMakeLists.txt
index 49ac1085..65ba622a 100644
--- a/libdiscover/backends/FlatpakBackend/CMakeLists.txt
+++ b/libdiscover/backends/FlatpakBackend/CMakeLists.txt
@@ -23,8 +23,14 @@ add_library(FlatpakNotifier MODULE FlatpakNotifier.cpp)
target_link_libraries(FlatpakNotifier Discover::Notifiers Qt5::Concurrent PkgConfig::Flatpak)
set_target_properties(FlatpakNotifier PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/plasma-discover)
+if (Flatpak_VERSION VERSION_LESS 1.10.2)
+ target_compile_definitions(flatpak-backend PRIVATE -DFLATPAK_EXTERNC_REQUIRED)
+ target_compile_definitions(FlatpakNotifier PRIVATE -DFLATPAK_EXTERNC_REQUIRED)
+endif()
+
install(TARGETS FlatpakNotifier DESTINATION ${PLUGIN_INSTALL_DIR}/discover-notifier)
install(PROGRAMS org.kde.discover-flatpak.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
+
install(FILES org.kde.discover.flatpak.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} )
ecm_install_icons(
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
index 3b71344f..f0234cc7 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakBackend.h
@@ -18,9 +18,7 @@
#include <AppStreamQt/component.h>
-extern "C" {
-#include <flatpak.h>
-}
+#include "flatpak-helper.h"
class FlatpakSourcesBackend;
class StandardBackendUpdater;
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakFetchDataJob.h b/libdiscover/backends/FlatpakBackend/FlatpakFetchDataJob.h
index b9aaf80e..d63fd1bc 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakFetchDataJob.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakFetchDataJob.h
@@ -8,10 +8,8 @@
#define FLATPAKFETCHDATAJOB_H
#include <QByteArray>
-extern "C" {
-#include <flatpak.h>
+#include "flatpak-helper.h"
#include <glib.h>
-}
class FlatpakResource;
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.cpp b/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.cpp
index 9499c566..37adb046 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.cpp
+++ b/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.cpp
@@ -13,9 +13,6 @@
#include <QDebug>
#include <QTimer>
-extern "C" {
-}
-
FlatpakJobTransaction::FlatpakJobTransaction(FlatpakResource *app, Role role, bool delayStart)
: Transaction(app->backend(), app, role, {})
, m_app(app)
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.h b/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.h
index ea2aafaa..0e4423ef 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakJobTransaction.h
@@ -10,12 +10,10 @@
#include <Transaction/Transaction.h>
#include <QPointer>
+#include "flatpak-helper.h"
-extern "C" {
-#include <flatpak.h>
#include <gio/gio.h>
#include <glib.h>
-}
class FlatpakResource;
class FlatpakTransactionThread;
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakNotifier.h b/libdiscover/backends/FlatpakBackend/FlatpakNotifier.h
index fa358802..a0deb83a 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakNotifier.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakNotifier.h
@@ -10,9 +10,7 @@
#include <BackendNotifierModule.h>
#include <functional>
-extern "C" {
-#include <flatpak.h>
-}
+#include "flatpak-helper.h"
class FlatpakNotifier : public BackendNotifierModule
{
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakResource.h b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
index 880b494b..253062db 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakResource.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakResource.h
@@ -11,9 +11,7 @@
#include <resources/AbstractResource.h>
-extern "C" {
-#include <flatpak.h>
-}
+#include "flatpak-helper.h"
#include <AppStreamQt/component.h>
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakSourcesBackend.h b/libdiscover/backends/FlatpakBackend/FlatpakSourcesBackend.h
index b2a6c7c2..df356337 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakSourcesBackend.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakSourcesBackend.h
@@ -13,9 +13,7 @@
#include <QStack>
#include <functional>
-extern "C" {
-#include <flatpak.h>
-}
+#include "flatpak-helper.h"
class FlatpakResource;
class FlatpakSourcesBackend : public AbstractSourcesBackend
diff --git a/libdiscover/backends/FlatpakBackend/FlatpakTransactionThread.h b/libdiscover/backends/FlatpakBackend/FlatpakTransactionThread.h
index b8eef827..24718f9a 100644
--- a/libdiscover/backends/FlatpakBackend/FlatpakTransactionThread.h
+++ b/libdiscover/backends/FlatpakBackend/FlatpakTransactionThread.h
@@ -7,11 +7,9 @@
#ifndef FLATPAKTRANSACTIONTHREAD_H
#define FLATPAKTRANSACTIONTHREAD_H
-extern "C" {
-#include <flatpak.h>
+#include "flatpak-helper.h"
#include <gio/gio.h>
#include <glib.h>
-}
#include <Transaction/Transaction.h>
#include <QThread>
diff --git a/libdiscover/backends/FlatpakBackend/flatpak-helper.h b/libdiscover/backends/FlatpakBackend/flatpak-helper.h
new file mode 100644
index 00000000..f42eee46
--- /dev/null
+++ b/libdiscover/backends/FlatpakBackend/flatpak-helper.h
@@ -0,0 +1,18 @@
+/*
+ * SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
+ *
+ * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
+ */
+
+#ifndef FLATPAK_HELPER
+#define FLATPAK_HELPER
+
+#ifdef FLATPAK_EXTERNC_REQUIRED
+extern "C" {
+#endif
+#include <flatpak.h>
+#ifdef FLATPAK_EXTERNC_REQUIRED
+}
+#endif
+
+#endif
diff --git a/libdiscover/backends/FwupdBackend/CMakeLists.txt b/libdiscover/backends/FwupdBackend/CMakeLists.txt
index a018f175..59c36a8d 100644
--- a/libdiscover/backends/FwupdBackend/CMakeLists.txt
+++ b/libdiscover/backends/FwupdBackend/CMakeLists.txt
@@ -9,6 +9,9 @@ set(fwupd-backend_SRCS
add_library(fwupd-backend MODULE ${fwupd-backend_SRCS})
target_link_libraries(fwupd-backend Qt5::Core KF5::CoreAddons KF5::ConfigCore Discover::Common PkgConfig::Fwupd)
+if (Fwupd_VERSION VERSION_LESS 1.5.8)
+ target_compile_definitions(fwupd-backend PRIVATE -DFWUPD_EXTERNC_REQUIRED)
+endif()
install(TARGETS fwupd-backend DESTINATION ${PLUGIN_INSTALL_DIR}/discover)
diff --git a/libdiscover/backends/FwupdBackend/FwupdBackend.h b/libdiscover/backends/FwupdBackend/FwupdBackend.h
index c886384e..7b1ff180 100644
--- a/libdiscover/backends/FwupdBackend/FwupdBackend.h
+++ b/libdiscover/backends/FwupdBackend/FwupdBackend.h
@@ -25,9 +25,14 @@
#include <QCryptographicHash>
#include <QMap>
+#ifdef FWUPD_EXTERNC_REQUIRED
extern "C" {
+#endif
+
#include <fwupd.h>
+#ifdef FWUPD_EXTERNC_REQUIRED
}
+#endif
#include <glib-2.0/glib-object.h>
class QAction;
--
GitLab
|