device: Allow specifying shortnames for device mkspecs
authorGirish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Tue, 15 May 2012 15:44:13 +0000 (08:44 -0700)
committerQt by Nokia <qt-info@nokia.com>
Fri, 18 May 2012 23:45:04 +0000 (01:45 +0200)
Specifying -device linux-amlogic-8726M-g++ is error prone. With this
change, one can specify any substring of the mkspec names under
devices/ and the first one will be picked.

Change-Id: I7c4522fdaefe4a11e9292f7831075aa766a62c0b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
configure

index 2923e65..a58fb86 100755 (executable)
--- a/configure
+++ b/configure
@@ -242,6 +242,21 @@ DeviceVar()
     echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
 }
 
+resolveDeviceMkspec()
+{
+    result=$(find "$relpath/mkspecs/devices/" -type d -name "*$VAL*" | sed "s,^$relpath/mkspecs/,,")
+    match_count=$(echo "$result" | wc -w)
+    if [ "$match_count" -gt 1 ]; then
+        echo >&2 "Error: Multiple matches for device '$VAL'. Candidates are:"
+        tabbed_result=$(echo "$result" | sed "s,^,    ,")
+        echo >&2 "$tabbed_result"
+        echo "undefined"
+    elif [ "$match_count" -eq 0 ]; then
+        echo >&2 "Error: No device matching '$VAL'"
+        echo "undefined"
+    fi
+}
+
 #-------------------------------------------------------------------------------
 # operating system detection
 #-------------------------------------------------------------------------------
@@ -1270,7 +1285,8 @@ while [ "$#" -gt 0 ]; do
         case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
         ;;
     device)
-        XPLATFORM="devices/$VAL"
+        XPLATFORM=`resolveDeviceMkspec $VAL`
+        [ "$XPLATFORM" = "undefined" ] && exit 101
         ;;
     device-option)
         DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`