Fix QMAKE_CXX/CROSS_COMPILE verification with ccache
The use of ccache leads to QMAKE_CXX definitions of the form:
QMAKE_CXX = $${CCACHE} $${CROSS_COMPILE}g++
The previous test required QMAKE_CXX to be a single valid (absolute or
QMAKE_PATH_ENV-relative) path to an existing file, which was not
compatible with definitions of QMAKE_CXX like the one above.
Fix this by using only the first value in QMAKE_CXX, which usually
points to the compiler executable, or to the ccache executable in the
above case.
Task-number: QTBUG-47951
Change-Id: Iade3136f03493593b067fb7742fb997f92377425
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
bb10
parent
a8bc96e9e5
commit
fe1ba87961
|
|
@ -19,10 +19,15 @@ defineTest(deviceSanityCheckCompiler) {
|
|||
else: \
|
||||
sfx =
|
||||
|
||||
# Build the compiler filename using the first value in QMAKE_CXX in order to
|
||||
# support tools like ccache, which give QMAKE_CXX values of the form:
|
||||
# ccache <path_to_compiler>
|
||||
compiler = $$first(QMAKE_CXX)$$sfx
|
||||
|
||||
# Check if the binary exists with an absolute path. Do this check
|
||||
# before the CROSS_COMPILE empty check below to allow the mkspec
|
||||
# to derive the compiler path from other device options.
|
||||
exists($$QMAKE_CXX$$sfx):return()
|
||||
exists($$compiler):return()
|
||||
|
||||
# Check for possible reasons of failure
|
||||
# check if CROSS_COMPILE device-option is set
|
||||
|
|
@ -31,7 +36,7 @@ defineTest(deviceSanityCheckCompiler) {
|
|||
# Check if QMAKE_CXX points to an executable.
|
||||
ensurePathEnv()
|
||||
for (dir, QMAKE_PATH_ENV) {
|
||||
exists($$dir/$${QMAKE_CXX}$$sfx): \
|
||||
exists($$dir/$${compiler}): \
|
||||
return()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue