| # |
| # W A R N I N G |
| # ------------- |
| # |
| # This file is not part of the Qt API. It exists purely as an |
| # implementation detail. It may change from version to version |
| # without notice, or even be removed. |
| # |
| # We mean it. |
| # |
| |
| 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 |
| |
| win32:CONFIG(shared, static|shared) { |
| # Embed a VERSIONINFO resource into the plugin's DLL. |
| isEmpty(VERSION): VERSION = $$QT_VERSION |
| CONFIG += skip_target_version_ext |
| } |
| |
| tool_plugin { |
| !build_pass:qtConfig(debug_and_release): CONFIG += release |
| } else:if(win32|mac):!macx-xcode { |
| qtConfig(debug_and_release): CONFIG += debug_and_release |
| qtConfig(build_all): CONFIG += build_all |
| } |
| |
| CONFIG += relative_qt_rpath # Qt's plugins should be relocatable |
| |
| # Qt libraries should only use Application Extension safe APIs |
| darwin:!no_app_extension_api_only: CONFIG += app_extension_api_only |
| |
| isEmpty(MODULE): MODULE = $$basename(TARGET) |
| |
| CONFIG(static, static|shared)|prefix_build { |
| mod_work_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules |
| force_independent: \ |
| mod_inst_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst |
| else: \ |
| mod_inst_pfx = $$mod_work_pfx |
| MODULE_PRI = $$mod_inst_pfx/qt_plugin_$${MODULE}.pri |
| MODULE_FWD_PRI = $$mod_work_pfx/qt_plugin_$${MODULE}.pri |
| |
| !build_pass { |
| qt_plugin_deps = $$QT $$QT_PRIVATE |
| qt_plugin_deps ~= s,-private$,_private,g |
| |
| MODULE_PRI_CONT = \ |
| "QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \ |
| "QT_PLUGIN.$${MODULE}.EXTENDS =$$join(PLUGIN_EXTENDS, " ", " ")" \ |
| "QT_PLUGIN.$${MODULE}.DEPENDS = $$qt_plugin_deps" \ |
| "QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" \ |
| "QT_PLUGINS += $$MODULE" |
| write_file($$MODULE_PRI, MODULE_PRI_CONT)|error() |
| MODULE_PRI_FILES = $$MODULE_PRI |
| |
| force_independent { |
| |
| # Create a forwarding module .pri file |
| MODULE_FWD_PRI_CONT = \ |
| "QT_PLUGIN.$${MODULE}.PATH = $$MODULE_BASE_OUTDIR/plugins" \ |
| "include($$MODULE_PRI)" |
| write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error() |
| touch($$MODULE_FWD_PRI, $$MODULE_PRI) |
| MODULE_PRI_FILES += $$MODULE_FWD_PRI |
| |
| } |
| |
| # Then, inject the new module into the current cache state |
| !contains(QMAKE_INTERNAL_INCLUDED_FILES, $$MODULE_FWD_PRI): \ # before the actual include()! |
| cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, MODULE_PRI_FILES) |
| include($$MODULE_FWD_PRI) |
| for(var, $$list(TYPE EXTENDS CLASS_NAME PATH)): \ |
| defined(QT_PLUGIN.$${MODULE}.$$var, var): \ |
| cache(QT_PLUGIN.$${MODULE}.$$var, transient) |
| cache(QT_PLUGINS, transient) |
| } |
| |
| CONFIG(static, static|shared) { |
| pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules |
| pritarget.files = $$MODULE_PRI |
| INSTALLS += pritarget |
| } |
| } |
| |
| target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE |
| INSTALLS += target |
| |
| qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX |
| TARGET = $$qt5LibraryTarget($$TARGET, "plugins/$$PLUGIN_TYPE/") |
| |
| CONFIG += create_cmake |
| |
| DEFINES *= QT_DEPRECATED_WARNINGS |
| |
| load(qt_targets) |
| load(qt_common) |
| |
| QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF |