16f4bc5b63
instead of being magic attributes of the main modules, the privates are now proper modules of their own. this cleans up some code paths, is more mappable to other build tools, and enables private modules to depend on other private modules. note that the library path is needed even in the "empty" private modules, as in the framework case that's where headers are found. consequently, the modules need to be explicitly marked with the new "no_link" flag. this required some reorganization of qtAddModule(). Change-Id: I8e4f44a609f8d639cc01bcb658256870a627eb63 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
65 lines
2.0 KiB
Plaintext
65 lines
2.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_app)
|
|
|
|
CONFIG += console
|
|
|
|
# If we are doing a prefix build, create a "module" pri which enables
|
|
# qtPrepareTool() to work with the non-installed build.
|
|
# Non-bootstrapped tools always need this because of the environment setup.
|
|
!build_pass:if(!host_build|!force_bootstrap|force_independent) {
|
|
isEmpty(MODULE):MODULE = $$TARGET
|
|
|
|
!host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
|
|
|
|
load(qt_build_paths)
|
|
|
|
load(resolve_target)
|
|
|
|
TOOL_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_tool_$${MODULE}.pri
|
|
|
|
vars = binary depends
|
|
!isEmpty(QT_TOOL_ENV) {
|
|
vars += envvars
|
|
module_var_names =
|
|
module_var_sets =
|
|
for(var, QT_TOOL_ENV) {
|
|
vars += env.$${var}.name env.$${var}.value
|
|
module_var_names += QT_TOOL.$${MODULE}.env.$${var}
|
|
module_var_sets += \
|
|
"QT_TOOL.$${MODULE}.env.$${var}.name = $$val_escape($${var}.name)" \
|
|
"QT_TOOL.$${MODULE}.env.$${var}.value = $$val_escape($${var}.value)"
|
|
}
|
|
module_envvars = \
|
|
"QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
|
|
$$module_var_sets
|
|
} else {
|
|
module_envvars =
|
|
}
|
|
TOOL_PRI_CONT = \
|
|
"QT_TOOL.$${MODULE}.binary = $$QMAKE_RESOLVED_TARGET" \
|
|
"QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
|
|
$$module_envvars
|
|
write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")
|
|
|
|
# Then, inject the new tool into the current cache state
|
|
!contains(QMAKE_INTERNAL_INCLUDED_FILES, $$TOOL_PRI) { # before the actual include()!
|
|
added = $$TOOL_PRI
|
|
cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, added)
|
|
unset(added)
|
|
}
|
|
include($$TOOL_PRI)
|
|
for(var, vars): \
|
|
cache(QT_TOOL.$${MODULE}.$$var, transient)
|
|
|
|
}
|