From 6834d0eeccc7333ab9d53251b3bd4a24058843da Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 17 Jan 2017 17:10:21 +0100 Subject: [PATCH] prevent configure from putting garbage into .qmake.stash in cross-builds, toolchain.prf was loaded before CROSS_COMPILE was set up, leading to caching of possibly nonsensical values. this change also necessitated that msvc-version.conf is loaded only when toolchain.prf is, which is best done by loading the former from within the latter. that seems quite appropriate in the first place. Change-Id: I62577e827a75e335e03df016bd1aa1932643fd6c Reviewed-by: Joerg Bornemann Reviewed-by: Oswald Buddenhagen --- configure.pri | 12 +++++++++++- mkspecs/features/toolchain.prf | 2 ++ mkspecs/features/win32/default_pre.prf | 1 - 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/configure.pri b/configure.pri index cc173b6777..94aea44b13 100644 --- a/configure.pri +++ b/configure.pri @@ -411,7 +411,10 @@ defineTest(reloadSpec) { # so don't bother with being selective. QMAKE_INTERNAL_INCLUDED_FEATURES = \ # loading it gets simulated below. - $$[QT_HOST_DATA/src]/mkspecs/features/device_config.prf + $$[QT_HOST_DATA/src]/mkspecs/features/device_config.prf \ + # must be delayed until qdevice.pri is ready. + $$[QT_HOST_DATA/src]/mkspecs/features/mac/toolchain.prf \ + $$[QT_HOST_DATA/src]/mkspecs/features/toolchain.prf _SAVED_CONFIG = $$CONFIG load(spec_pre) @@ -825,6 +828,13 @@ defineTest(qtConfOutput_reloadSpec) { !isEmpty($${currentConfig}.output.devicePro)| \ !isEmpty(config.input.sysroot): \ reloadSpec() + + bypassNesting() { + QMAKE_INTERNAL_INCLUDED_FEATURES -= \ + $$[QT_HOST_DATA/src]/mkspecs/features/mac/toolchain.prf \ + $$[QT_HOST_DATA/src]/mkspecs/features/toolchain.prf + load(toolchain) + } } defineTest(qtConfOutput_shared) { diff --git a/mkspecs/features/toolchain.prf b/mkspecs/features/toolchain.prf index d71f40b831..fdefd513e3 100644 --- a/mkspecs/features/toolchain.prf +++ b/mkspecs/features/toolchain.prf @@ -153,3 +153,5 @@ unset(target_prefix) QMAKE_CFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_MSVC_COMPAT + +msvc:!intel_icl:!clang_cl: include(../common/msvc-version.conf) diff --git a/mkspecs/features/win32/default_pre.prf b/mkspecs/features/win32/default_pre.prf index 11160f5b5c..bdb72c0d89 100644 --- a/mkspecs/features/win32/default_pre.prf +++ b/mkspecs/features/win32/default_pre.prf @@ -1,3 +1,2 @@ CONFIG = rtti_off incremental_off windows $$CONFIG load(default_pre) -msvc:!intel_icl:!clang_cl: include(../../common/msvc-version.conf)