summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@theqtcompany.com>2015-10-12 09:55:30 +0200
committerDavid Schulz <david.schulz@theqtcompany.com>2015-10-30 13:14:51 +0000
commitc23a086e4fc9d7d7b2420de26cbc5adcbd23596e (patch)
tree8251c0edd80825742a04d3292ecc9a175122b899 /mkspecs
parenta2b58c1643b5c8b67cb18750ef2d565180a3a179 (diff)
configure: Separate host and build platform.
This separation makes it possible to make a canadian cross build of Qt on a linux build machine. The canadian cross build requires an external Qt that runs on the build system. Change-Id: Ifd83a4c6376d3299647e74bb349a3452a6f433fc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/features/device_config.prf15
-rw-r--r--mkspecs/features/qt_tool.prf56
2 files changed, 41 insertions, 30 deletions
diff --git a/mkspecs/features/device_config.prf b/mkspecs/features/device_config.prf
index e0383ef530..9281d3e407 100644
--- a/mkspecs/features/device_config.prf
+++ b/mkspecs/features/device_config.prf
@@ -1,16 +1,15 @@
# This file is loaded by some qmakespecs to get early configuration data.
-# Load generated qdevice.pri
-DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/qdevice.pri
+host_build: \
+ PRI_FILE_NAME = qhost.pri
+else: \
+ PRI_FILE_NAME = qdevice.pri
+DEVICE_PRI = $$[QT_HOST_DATA/get]/mkspecs/$$PRI_FILE_NAME
exists($$DEVICE_PRI):include($$DEVICE_PRI)
unset(DEVICE_PRI)
-host_build {
- CROSS_COMPILE =
-} else: isEmpty(CROSS_COMPILE) {
- #this variable can be persisted via qmake -set CROSS_COMPILE /foo
- CROSS_COMPILE = $$[CROSS_COMPILE]
-}
+# this variable can be persisted via qmake -set CROSS_COMPILE /foo
+!host_build:isEmpty(CROSS_COMPILE): CROSS_COMPILE = $$[CROSS_COMPILE]
# Provide a function to be used by mkspecs
defineTest(deviceSanityCheckCompiler) {
diff --git a/mkspecs/features/qt_tool.prf b/mkspecs/features/qt_tool.prf
index 3f0301a292..56970adae9 100644
--- a/mkspecs/features/qt_tool.prf
+++ b/mkspecs/features/qt_tool.prf
@@ -17,39 +17,51 @@ DEFINES *= QT_USE_QSTRINGBUILDER
# 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) {
+!build_pass:if(!host_build|!force_bootstrap|force_independent|!isEmpty(HOST_QT_TOOLS)) {
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)"
+ vars = binary
+
+ isEmpty(HOST_QT_TOOLS) {
+ load(resolve_target)
+
+ vars += depends
+ depends_var = "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")"
+
+ !host_build|!force_bootstrap: MODULE_DEPENDS = $$replace(QT, -private$, _private)
+
+ !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 =
}
- module_envvars = \
- "QT_TOOL.$${MODULE}.envvars = $$module_var_names" \
- $$module_var_sets
+
+ bin = $$system_path($$QMAKE_RESOLVED_TARGET)
} else {
- module_envvars =
+ bin = $${HOST_QT_TOOLS}/$${TARGET}
+ equals(QMAKE_HOST.os, Windows): bin = $${bin}.exe
+ bin = $$system_path($$bin)
}
- bin = $$system_path($$QMAKE_RESOLVED_TARGET)
+
TOOL_PRI_CONT = \
"QT_TOOL.$${MODULE}.binary = $$val_escape(bin)" \
- "QT_TOOL.$${MODULE}.depends =$$join(MODULE_DEPENDS, " ", " ")" \
+ $$depends_var \
$$module_envvars
write_file($$TOOL_PRI, TOOL_PRI_CONT)|error("Aborting.")