f166fcd3d0
Platform plugin is needed always when gui is linked to an application. This is tedious to do manually for static builds, so provide support for generating a source file that imports static plugins for application projects. "CONFIG += import_plugins" statement in application .pro file will generate required import statements for all plugins specified with QTPLUGIN variable. The plugin class names are found from plugin's module pri generated automatically when plugin is built, as long as the plugin specifies the PLUGIN_CLASS_NAME in the plugin .pro file before loading qt_plugin.prf. Task-number: QTBUG-28131 Change-Id: I19f8ea48a3c1e9b5c81f4399c4b5d439a6d4bea1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
48 lines
1.4 KiB
Plaintext
48 lines
1.4 KiB
Plaintext
load(qt_build_paths)
|
|
|
|
isEmpty(PLUGIN_TYPE): error("PLUGIN_TYPE (plugins/ subdirectory) needs to be defined.")
|
|
|
|
TEMPLATE = lib
|
|
CONFIG += plugin
|
|
DESTDIR = $$MODULE_BASE_OUTDIR/plugins/$$PLUGIN_TYPE
|
|
|
|
tool_plugin {
|
|
!build_pass:contains(QT_CONFIG, build_all): CONFIG += release
|
|
} else:if(win32|mac):!macx-xcode {
|
|
contains(QT_CONFIG, debug_and_release):CONFIG += debug_and_release
|
|
contains(QT_CONFIG, build_all):CONFIG += build_all
|
|
}
|
|
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
|
|
contains(QT_CONFIG, separate_debug_info):CONFIG += separate_debug_info
|
|
contains(QT_CONFIG, separate_debug_info_nocopy):CONFIG += separate_debug_info_nocopy
|
|
contains(QT_CONFIG, c++11):CONFIG += c++11
|
|
|
|
contains(QT_CONFIG, static):CONFIG += static
|
|
else:CONFIG += shared
|
|
|
|
!build_pass:static {
|
|
isEmpty(MODULE): MODULE = $$basename(TARGET)
|
|
|
|
MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_plugin_$${MODULE}.pri
|
|
|
|
MODULE_PRI_CONT = \
|
|
"QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \
|
|
"QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME"
|
|
|
|
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
|
|
|
|
pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
|
|
pritarget.files = $$MODULE_PRI
|
|
INSTALLS += pritarget
|
|
}
|
|
|
|
target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
|
|
INSTALLS += target
|
|
|
|
TARGET = $$qtLibraryTarget($$TARGET)
|
|
|
|
load(qt_targets)
|
|
|
|
wince*:LIBS += $$QMAKE_LIBS_GUI
|
|
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|