From 4497cb3d85ae5be0765c1a1dc0916e7f6deb7e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 22 May 2020 15:05:10 +0200 Subject: macOS: Build print support plugin directly into QtPrintSupport Task-number: QTBUG-83259 Change-Id: I74f60519fbccfa5f208397bf3d65f0a4f64cb6f0 Reviewed-by: Volker Hilsheimer --- src/plugins/printsupport/CMakeLists.txt | 3 - src/plugins/printsupport/cocoa/CMakeLists.txt | 22 ------- src/plugins/printsupport/cocoa/cocoa.json | 3 - src/plugins/printsupport/cocoa/cocoa.pro | 13 ----- src/plugins/printsupport/cocoa/main.cpp | 68 ---------------------- src/plugins/printsupport/printsupport.pro | 1 - src/printsupport/CMakeLists.txt | 2 + src/printsupport/platform/macos/cocoa.json | 3 + src/printsupport/platform/macos/macos.pri | 6 +- .../platform/macos/qcocoaprintersupport.mm | 24 ++++++++ 10 files changed, 34 insertions(+), 111 deletions(-) delete mode 100644 src/plugins/printsupport/cocoa/CMakeLists.txt delete mode 100644 src/plugins/printsupport/cocoa/cocoa.json delete mode 100644 src/plugins/printsupport/cocoa/cocoa.pro delete mode 100644 src/plugins/printsupport/cocoa/main.cpp create mode 100644 src/printsupport/platform/macos/cocoa.json diff --git a/src/plugins/printsupport/CMakeLists.txt b/src/plugins/printsupport/CMakeLists.txt index 1e7013bc1c..811e33c93f 100644 --- a/src/plugins/printsupport/CMakeLists.txt +++ b/src/plugins/printsupport/CMakeLists.txt @@ -1,8 +1,5 @@ # Generated from printsupport.pro. -if(MACOS) - add_subdirectory(cocoa) -endif() if(WIN32) # add_subdirectory(windows) # special case TODO endif() diff --git a/src/plugins/printsupport/cocoa/CMakeLists.txt b/src/plugins/printsupport/cocoa/CMakeLists.txt deleted file mode 100644 index 3b3f3023a1..0000000000 --- a/src/plugins/printsupport/cocoa/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -# Generated from cocoa.pro. - -##################################################################### -## QCocoaPrinterSupportPlugin Plugin: -##################################################################### - -qt_internal_add_plugin(QCocoaPrinterSupportPlugin - OUTPUT_NAME cocoaprintersupport - TYPE printsupport - SOURCES - main.cpp - PUBLIC_LIBRARIES - ${FWAppKit} - Qt::Core - Qt::Gui - Qt::GuiPrivate - Qt::PrintSupportPrivate -) - -#### Keys ignored in scope 1:.:.:cocoa.pro:: -# MODULE = "cocoaprintersupport" -# OTHER_FILES = "cocoa.json" diff --git a/src/plugins/printsupport/cocoa/cocoa.json b/src/plugins/printsupport/cocoa/cocoa.json deleted file mode 100644 index 85c38c42be..0000000000 --- a/src/plugins/printsupport/cocoa/cocoa.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "Keys": [ "cocoaprintersupport" ] -} diff --git a/src/plugins/printsupport/cocoa/cocoa.pro b/src/plugins/printsupport/cocoa/cocoa.pro deleted file mode 100644 index 242c596bcd..0000000000 --- a/src/plugins/printsupport/cocoa/cocoa.pro +++ /dev/null @@ -1,13 +0,0 @@ -TARGET = cocoaprintersupport -MODULE = cocoaprintersupport - -QT += gui-private printsupport-private -LIBS += -framework AppKit - -SOURCES += main.cpp - -OTHER_FILES += cocoa.json - -PLUGIN_TYPE = printsupport -PLUGIN_CLASS_NAME = QCocoaPrinterSupportPlugin -load(qt_plugin) diff --git a/src/plugins/printsupport/cocoa/main.cpp b/src/plugins/printsupport/cocoa/main.cpp deleted file mode 100644 index 26ef5cca22..0000000000 --- a/src/plugins/printsupport/cocoa/main.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtPrintSupport module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include -#include - -#include - -QT_BEGIN_NAMESPACE - -class QCocoaPrinterSupportPlugin : public QPlatformPrinterSupportPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID QPlatformPrinterSupportFactoryInterface_iid FILE "cocoa.json") - -public: - QPlatformPrinterSupport *create(const QString &); -}; - -QPlatformPrinterSupport *QCocoaPrinterSupportPlugin::create(const QString &key) -{ - if (key.compare(key, QLatin1String("cocoaprintersupport"), Qt::CaseInsensitive) != 0) - return 0; - - return new QCocoaPrinterSupport(); -} - -QT_END_NAMESPACE - -#include "main.moc" diff --git a/src/plugins/printsupport/printsupport.pro b/src/plugins/printsupport/printsupport.pro index 05cf1bc0b2..c7110ec338 100644 --- a/src/plugins/printsupport/printsupport.pro +++ b/src/plugins/printsupport/printsupport.pro @@ -1,6 +1,5 @@ TEMPLATE = subdirs QT_FOR_CONFIG += printsupport-private -osx: SUBDIRS += cocoa win32: SUBDIRS += windows unix:!darwin:qtConfig(cups): SUBDIRS += cups diff --git a/src/printsupport/CMakeLists.txt b/src/printsupport/CMakeLists.txt index e032845cae..698875e1f3 100644 --- a/src/printsupport/CMakeLists.txt +++ b/src/printsupport/CMakeLists.txt @@ -149,6 +149,8 @@ qt_extend_target(PrintSupport CONDITION MACOS AND TARGET Qt::Widgets platform/macos/qcocoaprintdevice_p.h platform/macos/qcocoaprintdevice.mm platform/macos/qcocoaprintersupport_p.h platform/macos/qcocoaprintersupport.mm platform/macos/qprintengine_mac.mm platform/macos/qprintengine_mac_p.h + NO_PCH_SOURCES + "platform/macos/qcocoaprintersupport.mm" PUBLIC_LIBRARIES Qt::WidgetsPrivate Cups::Cups diff --git a/src/printsupport/platform/macos/cocoa.json b/src/printsupport/platform/macos/cocoa.json new file mode 100644 index 0000000000..85c38c42be --- /dev/null +++ b/src/printsupport/platform/macos/cocoa.json @@ -0,0 +1,3 @@ +{ + "Keys": [ "cocoaprintersupport" ] +} diff --git a/src/printsupport/platform/macos/macos.pri b/src/printsupport/platform/macos/macos.pri index fc5c5c9b93..06a7c6a683 100644 --- a/src/printsupport/platform/macos/macos.pri +++ b/src/printsupport/platform/macos/macos.pri @@ -1,7 +1,6 @@ SOURCES += \ $$PWD/qprintengine_mac.mm \ $$PWD/qpaintengine_mac.mm \ - $$PWD/qcocoaprintersupport.mm \ $$PWD/qcocoaprintdevice.mm HEADERS += \ @@ -10,4 +9,9 @@ HEADERS += \ $$PWD/qprintengine_mac_p.h \ $$PWD/qpaintengine_mac_p.h +# Disable PCH to allow selectively enabling QT_STATICPLUGIN +NO_PCH_SOURCES += $$PWD/qcocoaprintersupport.mm + LIBS += -framework ApplicationServices -lcups + +OTHER_FILES += cocoa.json diff --git a/src/printsupport/platform/macos/qcocoaprintersupport.mm b/src/printsupport/platform/macos/qcocoaprintersupport.mm index 0a285dddc6..64a63241e7 100644 --- a/src/printsupport/platform/macos/qcocoaprintersupport.mm +++ b/src/printsupport/platform/macos/qcocoaprintersupport.mm @@ -52,6 +52,9 @@ #include +#define QT_STATICPLUGIN +#include + QT_BEGIN_NAMESPACE QCocoaPrinterSupport::QCocoaPrinterSupport() @@ -108,6 +111,27 @@ QString QCocoaPrinterSupport::defaultPrintDeviceId() const return QString(); } +class QCocoaPrinterSupportPlugin : public QPlatformPrinterSupportPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QPlatformPrinterSupportFactoryInterface_iid FILE "cocoa.json") + +public: + QPlatformPrinterSupport *create(const QString &); +}; + +QPlatformPrinterSupport *QCocoaPrinterSupportPlugin::create(const QString &key) +{ + if (key.compare(key, QLatin1String("cocoaprintersupport"), Qt::CaseInsensitive) != 0) + return 0; + + return new QCocoaPrinterSupport(); +} + +Q_IMPORT_PLUGIN(QCocoaPrinterSupportPlugin) + +#include "qcocoaprintersupport.moc" + QT_END_NAMESPACE #endif //QT_NO_PRINTER -- cgit v1.2.3