summaryrefslogtreecommitdiffstats
path: root/mkspecs/features
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-21 08:17:21 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-21 08:17:21 +0100
commit158a3a4159bdc5a49caecd63e021dacbc06cf23c (patch)
treec3ed9aee6cabd46e5e8615b3815b92d32857c4da /mkspecs/features
parent26ece94a68fb5ae680c5639716b06c4e1ae979a8 (diff)
parent7b2fb038ae4b8b9231ae989ad309b6eca107a858 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/corelib/io/qiodevice_p.h src/corelib/kernel/qvariant_p.h src/corelib/tools/qsimd.cpp src/gui/kernel/qguiapplication.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp Change-Id: I742a093cbb231b282b43e463ec67173e0d29f57a
Diffstat (limited to 'mkspecs/features')
-rw-r--r--mkspecs/features/ctest_testcase_common.prf1
-rw-r--r--mkspecs/features/qt.prf78
-rw-r--r--mkspecs/features/qt_build_config.prf6
-rw-r--r--mkspecs/features/qt_clear_installs.prf12
-rw-r--r--mkspecs/features/qt_functions.prf3
-rw-r--r--mkspecs/features/qt_module.prf6
-rw-r--r--mkspecs/features/qt_module_headers.prf62
-rw-r--r--mkspecs/features/qt_module_pris.prf78
8 files changed, 163 insertions, 83 deletions
diff --git a/mkspecs/features/ctest_testcase_common.prf b/mkspecs/features/ctest_testcase_common.prf
index bdf40541ec..7183ade4df 100644
--- a/mkspecs/features/ctest_testcase_common.prf
+++ b/mkspecs/features/ctest_testcase_common.prf
@@ -56,6 +56,7 @@ mingw:isEmpty(CROSS_COMPILE):CMAKE_GENERATOR = -G \"MinGW Makefiles\"
BUILD_DIR = $$replace($$list($$OUT_PWD/build), /, $$QMAKE_DIR_SEP)
+!qtHaveModule(gui): CMAKE_MODULE_DEFINES += -DNO_GUI=True
!qtHaveModule(widgets): CMAKE_MODULE_DEFINES += -DNO_WIDGETS=True
!qtHaveModule(dbus): CMAKE_MODULE_DEFINES += -DNO_DBUS=True
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 3c9ab79b27..4b40451c96 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -67,8 +67,10 @@ for(ever) {
unset(BAD_QT)
for(QTLIB, FULL_QT$$var_sfx) {
MODULE_NAME = $$eval(QT.$${QTLIB}.name)
+ MODULE_MODULE = $$eval(QT.$${QTLIB}.module)
MODULE_INCLUDES = $$eval(QT.$${QTLIB}.includes)
MODULE_LIBS = $$eval(QT.$${QTLIB}.libs)
+ MODULE_FRAMEWORKS = $$eval(QT.$${QTLIB}.frameworks)
MODULE_CONFIG = $$eval(QT.$${QTLIB}.module_config)
isEmpty(MODULE_NAME) {
@@ -88,49 +90,55 @@ for(ever) {
MODULE_LIBS_ADD = $$MODULE_LIBS
MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS
- LINKAGE =
- contains(MODULE_CONFIG, lib_bundle) {
- FRAMEWORK_INCLUDE = $${MODULE_LIBS}/$${MODULE_NAME}.framework/Headers
- !qt_no_framework_direct_includes {
- INCLUDEPATH *= $$FRAMEWORK_INCLUDE
+ !contains(MODULE_CONFIG, v2) {
+ # Backwards compatibility with pre-5.6 module .pri files
+
+ contains(MODULE_CONFIG, lib_bundle) {
+ MODULE_FRAMEWORKS = $$MODULE_LIBS
+ inc = $$MODULE_LIBS/$${MODULE_NAME}.framework/Headers
+ MODULE_INCLUDES = $$inc
+ contains(MODULE_CONFIG, internal_module): \
+ MODULE_INCLUDES += \
+ $$inc/$$eval(QT.$${QTLIB}.VERSION) \
+ $$inc/$$eval(QT.$${QTLIB}.VERSION)/$$MODULE_NAME
+ } else {
+ # Re-insert the major version in the library name (cf qt5LibraryTarget above)
+ MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
}
- contains(MODULE_CONFIG, internal_module): \
- INCLUDEPATH += \
- $$FRAMEWORK_INCLUDE/$$eval(QT.$${QTLIB}.VERSION) \
- $$FRAMEWORK_INCLUDE/$$eval(QT.$${QTLIB}.VERSION)/$$MODULE_NAME
- QMAKE_FRAMEWORKPATH *= $${MODULE_LIBS}
- !contains(MODULE_CONFIG, no_link): \
- LINKAGE += -framework $${MODULE_NAME}$${QT_LIBINFIX}
- } else {
- INCLUDEPATH *= $$MODULE_INCLUDES
- }
-
- # Only link to this module if a libs directory is set, else this is just a module
- # to give access to sources or include files, and not for linking.
- !isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link) {
- # Re-insert the major version in the library name (cf qt5LibraryTarget above)
- # unless it's a framework build
- !contains(MODULE_CONFIG, lib_bundle): \
- MODULE_NAME ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
+ # Only link to this module if a libs directory is set, else this is just a module
+ # to give access to sources or include files, and not for linking.
+ !isEmpty(MODULE_LIBS):!contains(MODULE_CONFIG, no_link): \
+ MODULE_MODULE = $${MODULE_NAME}$${QT_LIBINFIX}
+ }
- isEmpty(LINKAGE) {
+ # Frameworks shouldn't need include paths, but much code does not use
+ # module-qualified #includes, so by default we add paths which point
+ # directly into the frameworks. Private modules have somewhat convoluted
+ # header paths, so adding them is necessary in every case.
+ !if(contains(MODULE_CONFIG, lib_bundle):qt_no_framework_direct_includes) \
+ |contains(MODULE_CONFIG, internal_module): \
+ INCLUDEPATH *= $$MODULE_INCLUDES
+ QMAKE_FRAMEWORKPATH *= $$MODULE_FRAMEWORKS
+ !isEmpty(MODULE_MODULE) {
+ contains(MODULE_CONFIG, lib_bundle) {
+ LIBS$$var_sfx += -framework $$MODULE_MODULE
+ } else {
!isEmpty(MODULE_LIBS_ADD): \
- LINKAGE = -L$$MODULE_LIBS_ADD
- lib = $${MODULE_NAME}$${QT_LIBINFIX}$$qtPlatformTargetSuffix()
- LINKAGE += -l$$lib
+ LIBS$$var_sfx += -L$$MODULE_LIBS_ADD
+
+ lib = $$MODULE_MODULE$$qtPlatformTargetSuffix()
+ LIBS$$var_sfx += -l$$lib
contains(MODULE_CONFIG, staticlib): \
PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
- }
- LIBS$$var_sfx += $$LINKAGE
-
- !isEmpty(QMAKE_LSB) {
- !isEmpty(MODULE_LIBS_ADD): \
- QMAKE_LFLAGS *= --lsb-libpath=$$MODULE_LIBS_ADD
- QMAKE_LFLAGS *= --lsb-shared-libs=$${MODULE_NAME}$${QT_LIBINFIX}
- QMAKE_LIBDIR *= /opt/lsb/lib
+ !isEmpty(QMAKE_LSB) {
+ !isEmpty(MODULE_LIBS_ADD): \
+ QMAKE_LFLAGS *= --lsb-libpath=$$MODULE_LIBS_ADD
+ QMAKE_LFLAGS *= --lsb-shared-libs=$$lib
+ QMAKE_LIBDIR *= /opt/lsb/lib
+ }
}
}
}
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index eaf23cf63a..518fd93f04 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -52,6 +52,12 @@ QMAKE_DIR_REPLACE_SANE = PRECOMPILED_DIR OBJECTS_DIR MOC_DIR RCC_DIR UI_DIR
unset(modpath)
}
+# Don't actually try to install anything in non-prefix builds.
+# This is much easier and safer than making every single INSTALLS
+# assignment conditional.
+!prefix_build: \
+ CONFIG += qt_clear_installs
+
cross_compile: \
CONFIG += force_bootstrap
diff --git a/mkspecs/features/qt_clear_installs.prf b/mkspecs/features/qt_clear_installs.prf
new file mode 100644
index 0000000000..66d12f9d6d
--- /dev/null
+++ b/mkspecs/features/qt_clear_installs.prf
@@ -0,0 +1,12 @@
+#
+# 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.
+#
+
+INSTALLS =
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index c23d006d82..f1982d6e4e 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -196,7 +196,7 @@ defineTest(qtAddTargetEnv) {
pluginpath.value =
ppaths = $$[QT_INSTALL_PLUGINS/get]
for(qplug, QT_PLUGINS): \
- contains(ptypes, QT_PLUGIN.$${qplug}.TYPE): \
+ contains(ptypes, $$eval(QT_PLUGIN.$${qplug}.TYPE)): \
ppaths += $$eval(QT_PLUGIN.$${qplug}.PATH)
ppaths = $$unique(ppaths)
for(qplug, ppaths) {
@@ -206,6 +206,7 @@ defineTest(qtAddTargetEnv) {
pluginpath.value += $$system_path($$qplug)
}
pluginpath.name = QT_PLUGIN_PATH
+ pluginpath.CONFIG = prepend
QT_TOOL_ENV += deppath pluginpath
}
diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
index 6ed75a4416..e543ea65e6 100644
--- a/mkspecs/features/qt_module.prf
+++ b/mkspecs/features/qt_module.prf
@@ -80,10 +80,10 @@ CONFIG += qmake_cache target_qt
QMAKE_DOCS_TARGETDIR = qt$${MODULE}
-load(qt_module_pris)
load(qt_common)
-
!no_module_headers: load(qt_module_headers)
+load(qt_module_pris)
+
INCLUDEPATH *= $$eval(QT.$${MODULE}.includes) $$eval(QT.$${MODULE}_private.includes)
# If Qt was configured with -debug-and-release then build the module the same way
@@ -139,6 +139,8 @@ mac {
contains(QT_CONFIG, rpath): \
QMAKE_SONAME_PREFIX = @rpath
+ else: \
+ CONFIG += absolute_library_soname
}
DEFINES += QT_BUILDING_QT
diff --git a/mkspecs/features/qt_module_headers.prf b/mkspecs/features/qt_module_headers.prf
index a2adc19c4c..777b4ffab3 100644
--- a/mkspecs/features/qt_module_headers.prf
+++ b/mkspecs/features/qt_module_headers.prf
@@ -18,10 +18,11 @@ load(qt_build_paths)
} else {
contains(QT_CONFIG, private_tests): \ # -developer-build
QMAKE_SYNCQT += -check-includes
- QMAKE_SYNCQT += -module $$MODULE_INCNAME -version $$VERSION
}
+ for(mod, MODULE_INCNAME): \
+ QMAKE_SYNCQT += -module $$mod
QMAKE_SYNCQT += \
- -outdir $$system_quote($$MODULE_BASE_OUTDIR) $$MODULE_SYNCQT_DIR
+ -version $$VERSION -outdir $$system_quote($$MODULE_BASE_OUTDIR) $$MODULE_SYNCQT_DIR
!silent: message($$QMAKE_SYNCQT)
system($$QMAKE_SYNCQT)|error("Failed to run: $$QMAKE_SYNCQT")
@@ -33,6 +34,63 @@ load(qt_build_paths)
}
}
+# Pre-generated headers in the source tree (tar-ball) and
+# - shadow build or
+# - non-shadow non-prefix build of a module which is not qtbase
+# (because the build-time generated headers all end up in qtbase).
+!git_build: \
+ if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
+ |if(!prefix_build:!equals(MODULE_BASE_INDIR, $$[QT_HOST_PREFIX]))): \
+ CONFIG += split_incpath
+
+# To avoid stuffing the code with repetetive conditionals,
+# we parametrize the names of the variables we assign to.
+
+# Internal modules have no private part - they *are* private.
+!internal_module: \
+ prv = _PRIVATE
+
+# When doing a framework build with a prefix, the module needs to point
+# into the frameworks' Headers dirs directly, as no shared include/ dir
+# is installed.
+# However, during the build, it needs to point into the shared include/
+# dir, as the framework doesn't even exist yet. For bootstrapped modules
+# which borrow headers from "proper" modules, this situation persists
+# even beyond the module's own build. The implication of this is that
+# qmake might never use a framework's headers in a non-prefix build,
+# as there is no separate set of .pri files for users outside Qt.
+prefix_build:lib_bundle: \
+ fwd = _FWD
+# When using a split include path during the build, the installed module's
+# include path is also structurally different from that in the build dir.
+prefix_build:split_incpath: \
+ sfwd = _FWD
+
+ibase = \$\$QT_MODULE_INCLUDE_BASE
+MODULE$${fwd}_INCLUDES = $$ibase
+split_incpath {
+ bibase = $$val_escape(MODULE_BASE_OUTDIR)/include
+ MODULE$${sfwd}_INCLUDES += $$bibase
+}
+for(mod, MODULE_INCNAME) {
+ mibase = $$ibase/$$mod
+ MODULE$${fwd}_INCLUDES += $$mibase
+ MODULE$${fwd}$${prv}_INCLUDES += $$mibase/$$VERSION $$mibase/$$VERSION/$$mod
+ split_incpath {
+ mbibase = $$bibase/$$mod
+ MODULE$${sfwd}_INCLUDES += $$mbibase
+ generated_privates: \
+ MODULE$${sfwd}$${prv}_INCLUDES += $$mbibase/$$VERSION $$mbibase/$$VERSION/$$mod
+ }
+ prefix_build:lib_bundle {
+ mfbase = \$\$QT_MODULE_LIB_BASE/$${mod}.framework/Headers
+ MODULE_INCLUDES += $$mfbase
+ MODULE$${prv}_INCLUDES += $$mfbase/$$VERSION $$mfbase/$$VERSION/$$mod
+ }
+}
+MODULE_INCLUDES += $$MODULE_AUX_INCLUDES
+MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES
+
minimal_syncqt: return()
#load up the headers info
diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf
index 3f21a0f7d5..5f5639a1cf 100644
--- a/mkspecs/features/qt_module_pris.prf
+++ b/mkspecs/features/qt_module_pris.prf
@@ -10,14 +10,7 @@
#
load(qt_build_paths)
-# Pre-generated headers in the source tree and
-# - shadow build or
-# - non-shadow non-prefix build of a module which is not qtbase (because the build-time
-# generated headers all end up in qtbase).
-!git_build:if(!equals(_PRO_FILE_PWD_, $$OUT_PWD) \
- |if(!prefix_build:!equals(MODULE_BASE_INDIR, $$[QT_HOST_PREFIX]))): \
- CONFIG += split_incpath
-force_independent|split_incpath: \
+force_independent|!isEmpty(MODULE_FWD_INCLUDES): \
CONFIG += need_fwd_pri
mod_work_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules
need_fwd_pri: \
@@ -53,18 +46,22 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
module_rundep = "QT.$${MODULE_ID}.run_depends = $$replace(QT_PRIVATE, -private$, _private)"
else: \
module_rundep =
+ module_build_type = v2
static: \
- module_build_type = staticlib
- else: lib_bundle: \
- module_build_type = lib_bundle
- else: \
- module_build_type =
- equals(TEMPLATE, aux): \
- module_build_type += no_link
+ module_build_type += staticlib
+ lib_bundle {
+ module_build_type += lib_bundle
+ MODULE_FRAMEWORKS = " \$\$QT_MODULE_LIB_BASE"
+ }
internal_module: \
module_build_type += internal_module
ltcg: \
module_build_type += ltcg
+ module_module =
+ !equals(TEMPLATE, aux) {
+ module_module = $$TARGET$$QT_LIBINFIX
+ !lib_bundle: module_module ~= s,^Qt,Qt$$QT_MAJOR_VERSION,
+ }
!isEmpty(MODULE_CONFIG): \
module_config = "QT.$${MODULE_ID}.CONFIG = $$MODULE_CONFIG"
else: \
@@ -77,27 +74,6 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
module_master = "QT.$${MODULE_ID}.master_header = $$MODULE_MASTER_HEADER"
else: \
module_master =
- !no_module_headers:!minimal_syncqt {
- MODULE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME
- MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \
- \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME
- }
- split_incpath {
- MODULE_SHADOW_INCLUDES = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \
- $$MODULE_BASE_OUTDIR/include)
- generated_privates: \
- MODULE_SHADOW_PRIVATE_INCLUDES = $$replace(MODULE_PRIVATE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \
- $$MODULE_BASE_OUTDIR/include)
- }
- MODULE_INCLUDES += $$MODULE_AUX_INCLUDES
- MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES
- internal_module: \
- MODULE_INCLUDES += $$MODULE_PRIVATE_INCLUDES
- split_incpath {
- MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE_ID}.includes += $$val_escape(MODULE_SHADOW_INCLUDES)"
- generated_privates: \
- MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE}_private.includes += $$val_escape(MODULE_SHADOW_PRIVATE_INCLUDES)"
- }
MODULE_PRI_CONT = \
"QT.$${MODULE_ID}.VERSION = $${VERSION}" \
"QT.$${MODULE_ID}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \
@@ -105,9 +81,11 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"QT.$${MODULE_ID}.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \
"" \
"QT.$${MODULE_ID}.name = $$TARGET" \
+ "QT.$${MODULE_ID}.module = $$module_module" \
"QT.$${MODULE_ID}.libs = $$module_libs" \
$$module_master \
- "QT.$${MODULE_ID}.includes = $$MODULE_INCLUDES"
+ "QT.$${MODULE_ID}.includes = $$MODULE_INCLUDES" \
+ "QT.$${MODULE_ID}.frameworks =$$MODULE_FRAMEWORKS"
!host_build: MODULE_PRI_CONT += \
"QT.$${MODULE_ID}.bins = \$\$QT_MODULE_BIN_BASE" \
"QT.$${MODULE_ID}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \
@@ -125,7 +103,11 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"QT_MODULES += $$MODULE"
write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.")
!internal_module:!no_private_module {
- module_build_type += internal_module no_link
+ module_build_type += internal_module
+ private_deps = $$QT
+ private_deps -= $$MODULE_DEPENDS
+ private_deps += $$MODULE $$QT_FOR_PRIVATE
+ private_deps ~= s,-private$,_private,g
MODULE_PRIVATE_PRI_CONT = \
"QT.$${MODULE}_private.VERSION = $${VERSION}" \
"QT.$${MODULE}_private.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \
@@ -133,9 +115,11 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
"QT.$${MODULE}_private.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \
"" \
"QT.$${MODULE}_private.name = $${TARGET}" \ # Same name as base module
+ "QT.$${MODULE}_private.module =" \
"QT.$${MODULE}_private.libs = $$module_libs" \
"QT.$${MODULE}_private.includes = $$MODULE_PRIVATE_INCLUDES" \
- "QT.$${MODULE}_private.depends = $$replace($$list($$MODULE $$QT_FOR_PRIVATE), -private$, _private)" \
+ "QT.$${MODULE}_private.frameworks =" \
+ "QT.$${MODULE}_private.depends = $$private_deps" \
"QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")"
write_file($$MODULE_PRIVATE_PRI, MODULE_PRIVATE_PRI_CONT)|error("Aborting.")
}
@@ -143,7 +127,7 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
need_fwd_pri {
- split_incpath: \
+ !git_build: \
MODULE_BASE_INCDIR = $$MODULE_BASE_INDIR
else: \
MODULE_BASE_INCDIR = $$MODULE_BASE_OUTDIR
@@ -163,7 +147,15 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
!internal_module:!no_private_module: MODULE_FWD_PRI_CONT += \
"include($$val_escape(MODULE_PRIVATE_PRI))" \
"QT.$${MODULE}_private.priority = 1"
- MODULE_FWD_PRI_CONT += $$MODULE_FWD_PRI_CONT_SUFFIX
+ !isEmpty(MODULE_FWD_INCLUDES) {
+ !lib_bundle: \
+ pls = +
+ MODULE_FWD_PRI_CONT += \
+ "QT.$${MODULE_ID}.includes $$pls= $$MODULE_FWD_INCLUDES"
+ !internal_module: \
+ MODULE_FWD_PRI_CONT += \
+ "QT.$${MODULE}_private.includes $$pls= $$MODULE_FWD_PRIVATE_INCLUDES"
+ }
write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.")
touch($$MODULE_FWD_PRI, $$MODULE_PRI)
MODULE_PRI_FILES += $$MODULE_FWD_PRI
@@ -189,8 +181,8 @@ MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri
include($$mod_work_pfx/qt_lib_$${pri}.pri)
for(mod, mods_to_load) {
for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \
- name depends run_depends plugin_types module_config CONFIG DEFINES \
- priority includes bins libs libexecs plugins imports qml \
+ name module depends run_depends plugin_types module_config CONFIG DEFINES \
+ priority includes bins libs frameworks libexecs plugins imports qml \
)):defined(QT.$${mod}.$$var, var):cache(QT.$${mod}.$$var, transient)
}
cache(QT_MODULES, transient)