RetroArch/qb/qb.moc.sh
orbea e42c21321b qb: Create qb.moc.sh and qb.make.sh.
This moves the check for a Qt5 moc into its own file, qb.moc.sh which
is executed at the end of the script to avoid the direct dependency on
pkg-config. Now instead it depends on the QT5CORE_CFLAGS and
QT5CORE_LIBS variables set in config.lib.sh. These should always be set
if HAVE_QT=yes.

This also creates a new qb.make.sh file to ensure that the config.mk and
config.h files are created at the end of the configure script.
2019-01-17 18:36:03 -08:00

56 lines
1.1 KiB
Bash

TEMP_MOC=.moc.h
TEMP_CPP=.moc.cpp
# Checking for working moc
cat << EOF > "$TEMP_MOC"
#include <QTimeZone>
class Test : public QObject
{
public:
Q_OBJECT
QTimeZone tz;
};
EOF
HAVE_MOC=no
if [ "$HAVE_QT" = "yes" ]; then
moc_works=0
if [ "$MOC" ]; then
"$MOC" -o "$TEMP_CPP" "$TEMP_MOC" >/dev/null 2>&1 &&
"$CXX" -o "$TEMP_EXE" $(printf %s "$QT5CORE_CFLAGS $QT5CORE_LIBS") \
-fPIC -c "$TEMP_CPP" >/dev/null 2>&1 &&
moc_works=1
else
for moc in moc-qt5 moc; do
MOC="$(exists "$moc")" || MOC=""
if [ "$MOC" ]; then
"$MOC" -o "$TEMP_CPP" "$TEMP_MOC" >/dev/null 2>&1 ||
continue
"$CXX" -o "$TEMP_EXE" \
$(printf %s "$QT5CORE_CFLAGS $QT5CORE_LIBS") \
-fPIC -c "$TEMP_CPP" >/dev/null 2>&1 && {
moc_works=1
break
}
fi
done
fi
moc_status='does not work'
if [ "$moc_works" = '1' ]; then
moc_status='works'
HAVE_MOC='yes'
elif [ -z "$MOC" ]; then
moc_status='not found'
fi
printf %s\\n "Checking for moc ... $MOC $moc_status"
if [ "$HAVE_MOC" != 'yes' ]; then
HAVE_QT='no'
die : 'Warning: moc not found, Qt companion support will be disabled.'
fi
fi
rm -f -- "$TEMP_CPP" "$TEMP_EXE" "$TEMP_MOC"