93221d2a0f
git-svn-id: svn://svn.openwrt.org/openwrt/packages@22743 3c298f89-4303-0410-b956-a3cf2f4a3e73
33 lines
990 B
Bash
Executable File
33 lines
990 B
Bash
Executable File
#!/bin/bash
|
|
|
|
die()
|
|
{
|
|
echo "PyQt qt_versioning.sh: $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
[ $# -eq 3 ] || die "Invalid arguments"
|
|
|
|
action="$1"
|
|
qtincdir="$2"
|
|
tmpfile="$3"
|
|
|
|
cp -f "$qtincdir/QtCore/qglobal.h" "$tmpfile" || die "cp failed"
|
|
echo "int QT_VERSION_IS = QT_VERSION;" >> "$tmpfile" || die "patching failed (1)"
|
|
echo "int QT_EDITION_IS = QT_EDITION;" >> "$tmpfile" || die "patching failed (2)"
|
|
# First resolve all preprocessor macros
|
|
cpp -x c++ -traditional-cpp "-I$qtincdir" "$tmpfile" > "$tmpfile.processed" || die "CPP failed"
|
|
|
|
if [ "$action" = "version" ]; then
|
|
raw="$(grep -e 'QT_VERSION_IS' "$tmpfile.processed" | cut -d'=' -f2 | cut -d';' -f1)"
|
|
elif [ "$action" = "edition" ]; then
|
|
raw="$(grep -e 'QT_EDITION_IS' "$tmpfile.processed" | cut -d'=' -f2 | cut -d';' -f1)"
|
|
else
|
|
die "Invalid action"
|
|
fi
|
|
# We use python to evaluate the arithmetic C++ expression. Languages are similar
|
|
# enough in that area for this to succeed.
|
|
python -c "print \"%d\" % ($raw)" || die "C++ evaluation failed"
|
|
|
|
exit 0
|