From 12f83062b01d5ba946e6f98503b72d4e58721aa4 Mon Sep 17 00:00:00 2001 From: Aleix Pol Gonzalez 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 -extern "C" { -#include -} +#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 -extern "C" { -#include +#include "flatpak-helper.h" #include -} 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 #include -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 #include +#include "flatpak-helper.h" -extern "C" { -#include #include #include -} 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 #include -extern "C" { -#include -} +#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 -extern "C" { -#include -} +#include "flatpak-helper.h" #include 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 #include -extern "C" { -#include -} +#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 +#include "flatpak-helper.h" #include #include -} #include #include 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 + * + * 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 +#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 #include +#ifdef FWUPD_EXTERNC_REQUIRED extern "C" { +#endif + #include +#ifdef FWUPD_EXTERNC_REQUIRED } +#endif #include class QAction; -- GitLab