From 1533bfc5fcc4ec5865c1de606504b6aba8a5f6fe Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 27 Mar 2012 14:43:45 -0300 Subject: Improve the architecture-detection mechanism For the Unix part, this now obeys the -v option, printing the full command-line it used to compile, allowing testers to identify why something went wrong. Unfortunately, it requires a full compilation cycle, instead of just preprocessing. Just one more among the many on Unix, but maybe a noticeable slow-down on Windows. Change-Id: I654b70d99887e04c96731a5b91be9ad555e4d8fe Reviewed-by: Oswald Buddenhagen Reviewed-by: Girish Ramakrishnan --- config.tests/unix/arch.test | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 config.tests/unix/arch.test (limited to 'config.tests/unix') diff --git a/config.tests/unix/arch.test b/config.tests/unix/arch.test new file mode 100755 index 0000000000..2a6e12de56 --- /dev/null +++ b/config.tests/unix/arch.test @@ -0,0 +1,41 @@ +#!/bin/sh + +QMKSPEC=$1 +VERBOSE=$2 +SRCDIR=$3 +OUTDIR=$4 +RESULTFILE=$5 + +# debuggery +[ "$VERBOSE" = "yes" ] && echo "Determining architecture... ($*)" + +# build a test program but don't run it +test -d "$OUTDIR/config.tests/arch" || mkdir -p "$OUTDIR/config.tests/arch" +[ -f Makefile ] && $MAKE distclean >/dev/null 2>&1 +"$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "QT_BUILD_TREE=$OUTDIR" "LIBS+=$SYSROOT_FLAG" "QMAKE_CXXFLAGS+=$SYSROOT_FLAG" "$SRCDIR/config.tests/arch/arch.pro" -o "$OUTDIR/config.tests/arch/Makefile" >/dev/null 2>&1 || echo "qmake is broken" >&2 +cd "$OUTDIR/config.tests/arch" + + +ARCH="" +[ "$VERBOSE" = "yes" ] && $MAKE || $MAKE >/dev/null 2>&1 + +if [ -f ./arch.exe ]; then + binary=./arch.exe +elif [ -f ./arch ]; then + binary=./arch +else + [ "$VERBOSE" = "yes" ] && echo "Unable to determine architecture!" + exit 2 +fi + +ARCH=`strings - $binary 2>/dev/null | awk -F: '/==Qt=magic=Qt==/ { print $2 }'` || +{ + [ "$VERBOSE" = "yes" ] && echo "Unable to determine architecture!" + exit 2 +} + +$MAKE distclean >/dev/null 2>&1 + +[ "$VERBOSE" = "yes" ] && echo " Found '$ARCH' in binary" + +echo "$ARCH" > $5 -- cgit v1.2.3