13b1395924
The arch.test script is now using SDK settings passed to it. If you install Xcode without the "UNIX Development" option, this is essential to let the compiler find standard headers and let the test program compile successfully. In addition, let configure pass the SDK settings given on the command line to the arch.test script. Change-Id: I49601d3068d83a71e21fdbac287857f2b7abedd1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
62 lines
1.6 KiB
Bash
Executable File
62 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
QMKSPEC=$1
|
|
VERBOSE=$2
|
|
SRCDIR=$3
|
|
OUTDIR=$4
|
|
RESULTFILE=$5
|
|
VARPREFIX=$6
|
|
shift 6
|
|
|
|
LFLAGS="$SYSROOT_FLAG"
|
|
CXXFLAGS="$SYSROOT_FLAG"
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
PARAM=$1
|
|
case $PARAM in
|
|
-sdk)
|
|
LFLAGS="$LFLAGS -Wl,-syslibroot,$2"
|
|
CXXFLAGS="$CXXFLAGS -isysroot $2"
|
|
shift
|
|
;;
|
|
*) ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
|
|
# 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=$OUTDIR "$OUTDIR/bin/qmake" -nocache -spec "$QMKSPEC" "QT_BUILD_TREE=$OUTDIR" "LIBS+=$LFLAGS" "QMAKE_CXXFLAGS+=$CXXFLAGS" "$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
|
|
|
|
if strings - $binary 2>/dev/null | \
|
|
awk -F: '/==Qt=magic=Qt== Architecture/ { print "'$VARPREFIX'_ARCH=\"" $2 "\"" }
|
|
/==Qt=magic=Qt== Sub-architecture/ { print "'$VARPREFIX'_CPUFEATURES=\"" $2 "\"" }' > "$RESULTFILE"
|
|
then
|
|
[ "$VERBOSE" = "yes" ] && echo " Found architecture in binary" && \
|
|
cat "$RESULTFILE"
|
|
else
|
|
[ "$VERBOSE" = "yes" ] && echo "Unable to determine architecture!"
|
|
exit 2
|
|
fi
|
|
|
|
$MAKE distclean >/dev/null 2>&1
|