devices: Allow to pick up the compiler from the path
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>
Wed, 23 May 2012 15:59:42 +0000 (17:59 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 23 May 2012 17:27:41 +0000 (19:27 +0200)
Re-enable checking if the compiler is in the path. The previous
commit dealt with a user/spec author not setting CROSS_COMPILE and
then picking up the host g++. Re-add the 'which' check, but put it
after the sanity check for the CROSS_COMPILE variable. This check
assumes that QMAKE_CXX is of the form "${CROSS_COMPILE}g++".

Change-Id: I54f7e058a75d26d73eca5a860946a6854ce91d67
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
mkspecs/features/device_config.prf

index b8991bb..ccf13b5 100644 (file)
@@ -32,14 +32,19 @@ unset(DIR)
 
 # Provide a function to be used by mkspecs
 defineTest(deviceSanityCheckCompiler) {
-    # Check if the binary exists with an absolute path
+    # 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):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=<path>")
 
-    # CROSS_COMPILE is an incorrect path
+    # Check if QMAKE_CXX points to an executable.
+    system("which $$QMAKE_CXX > /dev/null"):return()
+
+    # QMAKE_CXX does not point to a compiler.
     error("Compiler $$QMAKE_CXX not found. Check the value of CROSS_COMPILE -device-option")
 }