summaryrefslogtreecommitdiffstats
path: root/src/printsupport/platform
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 /src/printsupport/platform
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>
Diffstat (limited to 'src/printsupport/platform')
-rw-r--r--src/printsupport/platform/macos/cocoa.json3
-rw-r--r--src/printsupport/platform/macos/macos.pri6
-rw-r--r--src/printsupport/platform/macos/qcocoaprintersupport.mm24
3 files changed, 32 insertions, 1 deletions
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 <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