complain about various invalid configuration attempts

Task-number: QTBUG-56049
Change-Id: Id5eeb014c2b88195d2d14566a62dcb9185206b37
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Oswald Buddenhagen 2017-01-03 20:23:19 +01:00
parent 44a68aff66
commit 696c3f9af8
3 changed files with 22 additions and 1 deletions

5
configure vendored
View File

@ -82,6 +82,11 @@ if [ x"$1" = x"-top-level" ]; then
relpathMangled=`dirname "$relpath"` relpathMangled=`dirname "$relpath"`
outpathPrefix=../ outpathPrefix=../
shift shift
else
if [ -f ../.qmake.super ]; then
echo >&2 "ERROR: You cannot configure qtbase separately within a top-level build."
exit 1
fi
fi fi
OPT_CMDLINE= # expanded version for the script OPT_CMDLINE= # expanded version for the script

View File

@ -46,7 +46,12 @@ for %%P in ("%TOPQTSRC%") do set TOPQTSRC=%%~dpP
set TOPQTSRC=%TOPQTSRC:~0,-1% set TOPQTSRC=%TOPQTSRC:~0,-1%
for %%P in ("%QTDIR%") do set TOPQTDIR=%%~dpP for %%P in ("%QTDIR%") do set TOPQTDIR=%%~dpP
set TOPQTDIR=%TOPQTDIR:~0,-1% set TOPQTDIR=%TOPQTDIR:~0,-1%
goto wastoplevel
:notoplevel :notoplevel
if not exist ..\.qmake.super goto wastoplevel
echo ERROR: You cannot configure qtbase separately within a top-level build. >&2
exit /b 1
:wastoplevel
set SYNCQT= set SYNCQT=
set PLATFORM= set PLATFORM=

View File

@ -1700,6 +1700,14 @@ defineTest(qtConfProcessOutput) {
!isEmpty(_QMAKE_SUPER_CACHE_):!equals(OUT_PWD, $$dirname(_QMAKE_SUPER_CACHE_)) { !isEmpty(_QMAKE_SUPER_CACHE_):!equals(OUT_PWD, $$dirname(_QMAKE_SUPER_CACHE_)) {
# sub-repo within a top-level build; no need to configure anything. # sub-repo within a top-level build; no need to configure anything.
!isEmpty(QMAKE_EXTRA_ARGS) {
# sub-projects don't get the extra args passed down automatically,
# so we can use their presence to detect misguided attempts to
# configure the repositories separately.
# caveat: a plain qmake call is indistinguishable from a recursion
# (by design), so we cannot detect this case.
error("You cannot configure $$TARGET separately within a top-level build.")
}
return() return()
} }
@ -1717,8 +1725,11 @@ for (c, cfgs) {
exists($$s/configure.json): \ exists($$s/configure.json): \
configsToProcess += $$c configsToProcess += $$c
} }
isEmpty(configsToProcess): \ isEmpty(configsToProcess) {
!isEmpty(QMAKE_EXTRA_ARGS): \
error("This module does not accept configure command line arguments.")
return() return()
}
load(configure_base) load(configure_base)