From 7a605edc226d4051602e157fe575f17dfaac0964 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 21 Oct 2019 10:09:03 +0200 Subject: [PATCH] Fix static linking when bearer management plugins are built, part 2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After commit 5f160a3699d80d1736f691ad9ef774eb6aa28079 moved the code that's shared across all bearer management plugins into QtNetwork, there is one piece of code remaining that's shared across the connman and the networkmanager bearer plugin: The dbus ofono interface code. To avoid linking that twice (and causing duplicate symbol errors), this patch moves it into a static platform support library. This way for shared builds the code is included twice, but for static builds only once. Change-Id: Idf5414bc22fea45f11c600f28eaea91bb4dc6308 Reviewed-by: MÃ¥rten Nordheim --- src/platformsupport/linuxofono/linuxofono.pro | 15 +++++++++++++++ .../linuxofono}/qofonoservice_linux.cpp | 2 +- .../linuxofono}/qofonoservice_linux_p.h | 0 src/platformsupport/platformsupport.pro | 4 ++++ src/plugins/bearer/connman/connman.pro | 4 +--- src/plugins/bearer/connman/qconnmanengine.h | 2 +- .../bearer/networkmanager/networkmanager.pro | 8 +++----- .../networkmanager/qnetworkmanagerengine.cpp | 1 - .../bearer/networkmanager/qnetworkmanagerengine.h | 2 +- sync.profile | 1 + 10 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 src/platformsupport/linuxofono/linuxofono.pro rename src/{plugins/bearer/linux_common => platformsupport/linuxofono}/qofonoservice_linux.cpp (99%) rename src/{plugins/bearer/linux_common => platformsupport/linuxofono}/qofonoservice_linux_p.h (100%) diff --git a/src/platformsupport/linuxofono/linuxofono.pro b/src/platformsupport/linuxofono/linuxofono.pro new file mode 100644 index 0000000000..1bc5b10225 --- /dev/null +++ b/src/platformsupport/linuxofono/linuxofono.pro @@ -0,0 +1,15 @@ +TARGET = QtLinuxOfonoSupport +MODULE = linuxofono_support + +QT = core dbus +CONFIG += static internal_module + +DEFINES += QT_NO_CAST_FROM_ASCII + +HEADERS += \ + qofonoservice_linux_p.h + +SOURCES += \ + qofonoservice_linux.cpp + +load(qt_module) diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/platformsupport/linuxofono/qofonoservice_linux.cpp similarity index 99% rename from src/plugins/bearer/linux_common/qofonoservice_linux.cpp rename to src/platformsupport/linuxofono/qofonoservice_linux.cpp index 05f9b3ca17..792c703966 100644 --- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp +++ b/src/platformsupport/linuxofono/qofonoservice_linux.cpp @@ -148,7 +148,7 @@ QOfonoModemInterface::QOfonoModemInterface(const QString &dbusPathName, QObject { QDBusConnection::systemBus().connect(QLatin1String(OFONO_SERVICE), path(), - OFONO_MODEM_INTERFACE, + QLatin1String(OFONO_MODEM_INTERFACE), QLatin1String("PropertyChanged"), this,SLOT(propertyChanged(QString,QDBusVariant))); } diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux_p.h b/src/platformsupport/linuxofono/qofonoservice_linux_p.h similarity index 100% rename from src/plugins/bearer/linux_common/qofonoservice_linux_p.h rename to src/platformsupport/linuxofono/qofonoservice_linux_p.h diff --git a/src/platformsupport/platformsupport.pro b/src/platformsupport/platformsupport.pro index 6d4f1b93bd..0b2dd8974b 100644 --- a/src/platformsupport/platformsupport.pro +++ b/src/platformsupport/platformsupport.pro @@ -45,3 +45,7 @@ darwin { qtConfig(vulkan): \ SUBDIRS += vkconvenience + +!android:linux*:qtHaveModule(dbus) \ + SUBDIRS += linuxofono + diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro index d6577e9d7f..03e94cfe6a 100644 --- a/src/plugins/bearer/connman/connman.pro +++ b/src/plugins/bearer/connman/connman.pro @@ -1,14 +1,12 @@ TARGET = qconnmanbearer -QT = core network-private dbus +QT = core network-private dbus linuxofono_support_private HEADERS += qconnmanservice_linux_p.h \ - ../linux_common/qofonoservice_linux_p.h \ qconnmanengine.h SOURCES += main.cpp \ qconnmanservice_linux.cpp \ - ../linux_common/qofonoservice_linux.cpp \ qconnmanengine.cpp OTHER_FILES += connman.json diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h index eb79dbec1b..969eed45b1 100644 --- a/src/plugins/bearer/connman/qconnmanengine.h +++ b/src/plugins/bearer/connman/qconnmanengine.h @@ -54,7 +54,7 @@ #include #include "qconnmanservice_linux_p.h" -#include "../linux_common/qofonoservice_linux_p.h" +#include #include #include diff --git a/src/plugins/bearer/networkmanager/networkmanager.pro b/src/plugins/bearer/networkmanager/networkmanager.pro index 3fbad07ef5..3ca217f974 100644 --- a/src/plugins/bearer/networkmanager/networkmanager.pro +++ b/src/plugins/bearer/networkmanager/networkmanager.pro @@ -1,15 +1,13 @@ TARGET = qnmbearer -QT = core network-private dbus +QT = core network-private dbus linuxofono_support_private HEADERS += qnetworkmanagerservice.h \ - qnetworkmanagerengine.h \ - ../linux_common/qofonoservice_linux_p.h + qnetworkmanagerengine.h SOURCES += main.cpp \ qnetworkmanagerservice.cpp \ - qnetworkmanagerengine.cpp \ - ../linux_common/qofonoservice_linux.cpp + qnetworkmanagerengine.cpp OTHER_FILES += networkmanager.json diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index d686bc4e51..2fb5b2efbc 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -53,7 +53,6 @@ #include #include #include -#include "../linux_common/qofonoservice_linux_p.h" #ifndef QT_NO_DBUS diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h index c6c5280eca..c624d6087d 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h @@ -55,7 +55,7 @@ #include "qnetworkmanagerservice.h" -#include "../linux_common/qofonoservice_linux_p.h" +#include #include #include diff --git a/sync.profile b/sync.profile index fd44197a00..b1c7e0f328 100644 --- a/sync.profile +++ b/sync.profile @@ -29,6 +29,7 @@ "QtKmsSupport" => "$basedir/src/platformsupport/kmsconvenience", "QtEdidSupport" => "$basedir/src/platformsupport/edid", "QtVulkanSupport" => "$basedir/src/platformsupport/vkconvenience", + "QtLinuxOfonoSupport" => "$basedir/src/platformsupport/linuxofono", "QtPlatformHeaders" => "$basedir/src/platformheaders", "QtANGLE/KHR" => "!$basedir/src/3rdparty/angle/include/KHR", "QtANGLE/GLES2" => "!$basedir/src/3rdparty/angle/include/GLES2",