967372c975
the addition of qt's rpath belongs into qt.prf - even on mac. so consolidate the two implementations. as a nice "side effect", we get relative rpaths also on linux. another "side effect" is that we don't unnecessarily add the qt rpath to qt modules also on linux. the qt rpath addition mechanism should not be responsible for setting the policy who gets a relative rpath, so move the logic to higher-level callers. Change-Id: I52e8fe2e8279e7b1ac25fae758867a5cb1cafcf8 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
96 lines
3.0 KiB
Plaintext
96 lines
3.0 KiB
Plaintext
#
|
|
# 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: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
|
|
}
|
|
|
|
CONFIG += relative_qt_rpath # Qt's plugins should be relocatable
|
|
|
|
CONFIG(static, static|shared)|prefix_build {
|
|
isEmpty(MODULE): MODULE = $$basename(TARGET)
|
|
|
|
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 {
|
|
MODULE_PRI_CONT = \
|
|
"QT_PLUGIN.$${MODULE}.TYPE = $$PLUGIN_TYPE" \
|
|
"QT_PLUGIN.$${MODULE}.EXTENDS =$$join(PLUGIN_EXTENDS, " ", " ")" \
|
|
"QT_PLUGIN.$${MODULE}.CLASS_NAME = $$PLUGIN_CLASS_NAME" \
|
|
"QT_PLUGINS += $$MODULE"
|
|
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
|
|
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("Aborting.")
|
|
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
|
|
|
|
TARGET = $$qt5LibraryTarget($$TARGET)
|
|
|
|
CONFIG += create_cmake
|
|
|
|
load(qt_targets)
|
|
load(qt_common)
|
|
|
|
wince: LIBS += $$QMAKE_LIBS_GUI
|
|
QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
|