From e58eb3d6f953c224c2d47cd344bc41ba9f499223 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Wed, 23 Nov 2016 20:11:17 +0100 Subject: move device spec validation to configure instead of letting the specs validate themselves on each call, let them only define a callback for use by the verifyspec configure test. this is somewhat faster, and allows them to be loaded before qdevice.pri is populated. Change-Id: I2b60d006b33bbf42c28949f10ad429520ed32f46 Reviewed-by: Laszlo Agocs Reviewed-by: Lars Knoll --- config.tests/common/verifyspec/verifyspec.pro | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'config.tests') diff --git a/config.tests/common/verifyspec/verifyspec.pro b/config.tests/common/verifyspec/verifyspec.pro index d78ed2985a..11a280e4ce 100644 --- a/config.tests/common/verifyspec/verifyspec.pro +++ b/config.tests/common/verifyspec/verifyspec.pro @@ -1 +1,37 @@ SOURCES = verifyspec.cpp + +# Provide a function to be used by mkspecs +defineTest(deviceSanityCheckCompiler) { + equals(QMAKE_HOST.os, Windows): \ + sfx = .exe + 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 + 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($$compiler): return() + + # Check for possible reasons of failure + # check if CROSS_COMPILE device-option is set + isEmpty(CROSS_COMPILE): \ + error("CROSS_COMPILE needs to be set via -device-option CROSS_COMPILE=") + + # Check if QMAKE_CXX points to an executable. + ensurePathEnv() + for (dir, QMAKE_PATH_ENV) { + exists($$dir/$${compiler}): \ + return() + } + + # QMAKE_CXX does not point to a compiler. + error("Compiler $$QMAKE_CXX not found. Check the value of CROSS_COMPILE -device-option") +} + +defined(qtConfSanitizeMkspec, test): \ + qtConfSanitizeMkspec() -- cgit v1.2.3