summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-05-22 15:05:10 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2020-06-04 15:58:02 +0200
commit4497cb3d85ae5be0765c1a1dc0916e7f6deb7e70 (patch)
tree98e8f7bb799a68311893d741fa59859560df86ea
parent1cee9cc5870b475b141dfa6ad84de2038a28d5b8 (diff)
macOS: Build print support plugin directly into QtPrintSupport
Task-number: QTBUG-83259 Change-Id: I74f60519fbccfa5f208397bf3d65f0a4f64cb6f0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-rw-r--r--src/plugins/printsupport/CMakeLists.txt3
-rw-r--r--src/plugins/printsupport/cocoa/CMakeLists.txt22
-rw-r--r--src/plugins/printsupport/cocoa/cocoa.pro13
-rw-r--r--src/plugins/printsupport/cocoa/main.cpp68
-rw-r--r--src/plugins/printsupport/printsupport.pro1
-rw-r--r--src/printsupport/CMakeLists.txt2
-rw-r--r--src/printsupport/platform/macos/cocoa.json (renamed from src/plugins/printsupport/cocoa/cocoa.json)0
-rw-r--r--src/printsupport/platform/macos/macos.pri6
-rw-r--r--src/printsupport/platform/macos/qcocoaprintersupport.mm24
9 files changed, 31 insertions, 108 deletions
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:<TRUE>:
-# MODULE = "cocoaprintersupport"
-# OTHER_FILES = "cocoa.json"
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 <QtCore/QMetaMethod>
-#include <QtGui/QGuiApplication>
-#include <qpa/qplatformnativeinterface.h>
-#include <qpa/qplatformprintplugin.h>
-
-#include <QtPrintSupport/private/qcocoaprintersupport_p.h>
-
-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/plugins/printsupport/cocoa/cocoa.json b/src/printsupport/platform/macos/cocoa.json
index 85c38c42be..85c38c42be 100644
--- a/src/plugins/printsupport/cocoa/cocoa.json
+++ b/src/printsupport/platform/macos/cocoa.json
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 <private/qprinterinfo_p.h>
+#define QT_STATICPLUGIN
+#include <qpa/qplatformprintplugin.h>
+
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