AX_HAVE_QT for configuring Qt compilation (#167)

* Testing using AX_HAVE_QT for configuring Qt compilation instead of pkg-config

* cleanup

* get RCC too

* try MOC without CXXFLAGS?

* need qt5-default package

* readme, unfuck pulseaudio compile

* already have ax_have_qt.m4

* fixes to add RCC to ax_have_qt
This commit is contained in:
Mischa Spiegelmock
2019-03-02 21:39:38 +02:00
committed by GitHub
parent 8cafafab65
commit 0378ee77ee
7 changed files with 41 additions and 50 deletions

View File

@ -47,6 +47,7 @@ matrix:
- clang-5.0
- libglm-dev
- libc++-dev
- qt5-default
- qtdeclarative5-dev
- libqt5opengl5-dev
- libjack-dev

View File

@ -71,7 +71,7 @@ Silverjuke (FOSS Jukebox)
```
## Linux (debian/ubuntu)
* `sudo apt install autoconf libtool libsdl2-dev libglm-dev qtdeclarative5-dev libqt5opengl5-dev libjack-dev libpulse-dev libsdl-dev`
* `sudo apt install autoconf libtool libsdl2-dev libglm-dev qt5-default qtdeclarative5-dev libqt5opengl5-dev libjack-dev libpulse-dev libsdl-dev`
## FreeBSD
* `pkg install gcc autoconf automake libtool mesa-libs libGLU sdl2 glm`

View File

@ -145,38 +145,13 @@ AX_CHECK_COMPILE_FLAG([-stdlib=libc++], [
AX_CHECK_COMPILE_FLAG([-std=c++11], [
CXXFLAGS="$CXXFLAGS -std=c++11"])
dnl Qt
# Qt5
AX_HAVE_QT # m4/qt.m4
AC_ARG_ENABLE([qt], AS_HELP_STRING([--enable-qt], [Enable Qt: needed for pulseaudio and jack GUIs]), [], [enable_qt=check])
AS_IF([test "$enable_qt" != "no"],
[PKG_CHECK_MODULES([qt],
[Qt5Core, Qt5Gui, Qt5Widgets Qt5OpenGL],
[
[AS_IF([test "$have_qt" = "yes"], [
# we have at least qt5 if $have_qt is true
enable_qt=yes
# do more checks for Qt version and tools
qt_CPPFLAGS="`$PKG_CONFIG --cflags-only-I Qt5Core Qt5Gui Qt5Widgets Qt5OpenGL` $CPPFLAGS"
qt_LDFLAGS="`$PKG_CONFIG --libs-only-L Qt5Core Qt5Gui Qt5Widgets Qt5OpenGL` $LDFLAGS"
qt_LIBS="`$PKG_CONFIG --libs-only-l Qt5Core Qt5Gui Qt5Widgets Qt5OpenGL` $LIBS"
AC_SUBST(qt_CPPFLAGS)
AC_SUBST(qt_LDFLAGS)
AC_SUBST(qt_LIBS)
if ! `$PKG_CONFIG --atleast-version=5.0.0 Qt5Core`; then
AC_MSG_WARN([Qt >= 5.0.0 is required. Try installing libqt5opengl5-dev qtdeclarative5-dev])
enable_qt=no
fi
AC_CHECK_PROGS(MOC, [moc-qt5 moc])
AC_CHECK_PROGS(UIC, [uic-qt5 uic])
AC_CHECK_PROGS(RCC, [rcc-qt5 rcc])
if test -z "$MOC" || test -z "$UIC" || test -z "$RCC"; then
AC_MSG_WARN([Qt utility programs moc, uic, and rcc are required.])
enable_qt=no
fi
# MOC="$MOC -qt=5"
# UIC="$UIC -qt=5"
# RCC="$RCC -qt=5"
export QT_SELECT=qt5
],
[AS_IF([test "$enable_qt" = "yes"],

7
m4/autoconf-archive/ax_have_qt.m4 Executable file → Normal file
View File

@ -21,6 +21,7 @@
# QT_LIBS
# QT_MOC
# QT_UIC
# QT_RCC
# QT_LRELEASE
# QT_LUPDATE
# QT_DIR
@ -53,7 +54,7 @@
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 14
#serial 15
AU_ALIAS([BNV_HAVE_QT], [AX_HAVE_QT])
AC_DEFUN([AX_HAVE_QT],
@ -113,6 +114,7 @@ EOF
# Look for specific tools in $PATH
QT_MOC=`which moc`
QT_UIC=`which uic`
QT_RCC=`which rcc`
QT_LRELEASE=`which lrelease`
QT_LUPDATE=`which lupdate`
@ -126,6 +128,7 @@ EOF
QT_LIBS=$QT_LIBS
QT_UIC=$QT_UIC
QT_MOC=$QT_MOC
QT_RCC=$QT_RCC
QT_LRELEASE=$QT_LRELEASE
QT_LUPDATE=$QT_LUPDATE])
else
@ -136,6 +139,7 @@ EOF
QT_LIBS=
QT_UIC=
QT_MOC=
QT_RCC=
QT_LRELEASE=
QT_LUPDATE=
AC_MSG_RESULT($have_qt)
@ -145,6 +149,7 @@ EOF
AC_SUBST(QT_LIBS)
AC_SUBST(QT_UIC)
AC_SUBST(QT_MOC)
AC_SUBST(QT_RCC)
AC_SUBST(QT_LRELEASE)
AC_SUBST(QT_LUPDATE)

View File

@ -1,3 +1,6 @@
QT_CXXFLAGS = @QT_CXXFLAGS@
QT_LIBS = @QT_LIBS@
AM_CPPFLAGS = \
${my_CFLAGS} \
-include $(top_builddir)/config.h \
@ -8,9 +11,8 @@ ${my_CFLAGS} \
-I${top_srcdir}/src/libprojectM/Renderer \
-I${top_srcdir}/src/projectM-qt \
${jack_CFLAGS} \
${qt_CPPFLAGS} \
-fPIC \
${qt_CFLAGS}
${QT_CXXFLAGS} \
-fPIC
# TODO: add remote control if we have qxt network lib
# if QT_NETWORK_ENABLED
@ -25,10 +27,10 @@ projectM_jack_SOURCES = qprojectM-jack.cpp ConfigFile.cpp ${EXTRA_SRCS}
projectM_jack_LDADD = \
../projectM-qt/libprojectM_qt.a \
${jack_LIBS} \
${qt_LIBS} \
${QT_LIBS} \
../libprojectM/libprojectM.la \
-lSDL
projectM_jack_LDFLAGS = -static -fPIC ${qt_LDFLAGS}
projectM_jack_LDFLAGS = -static -fPIC ${QT_LIBS}
projectM_jack_PROGRAM = projectM-jack
dist_man_MANS = projectM-jack.1

View File

@ -1,4 +1,8 @@
SUFFIXES = .hpp .cpp _moc.cpp _qrc.qrc
QT_CXXFLAGS = @QT_CXXFLAGS@
QT_LIBS = @QT_LIBS@
MOC = @QT_MOC@
UIC = @QT_UIC@
projectM_pulseaudio_qtheaders = \
QPulseAudioDeviceChooser.hpp \
@ -8,10 +12,10 @@ projectM_pulseaudio_qtheaders = \
nodist_projectM_pulseaudio_moc_sources = $(projectM_pulseaudio_qtheaders:.hpp=_moc.cpp)
.hpp_moc.cpp:
@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(MOC_CPPFLAGS) $<
$(MOC) -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $<
ui_PulseDeviceChooserDialog.h: PulseDeviceChooserDialog.ui
@UIC@ -o $@ $<
$(UIC) -o $@ $<
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
@ -20,8 +24,7 @@ AM_CPPFLAGS = \
-I${top_srcdir}/src/libprojectM \
-I${top_srcdir}/src/libprojectM/Renderer \
-I${top_srcdir}/src/projectM-qt \
${qt_CFLAGS} \
${qt_CPPFLAGS} \
${QT_CXXFLAGS} \
${libpulse_CFLAGS} \
-fPIC
@ -47,9 +50,9 @@ projectM_pulseaudio_LDADD = \
${libpulse_LIBS} \
../projectM-qt/libprojectM_qt.a \
../libprojectM/libprojectM.la \
${qt_LIBS}
${QT_LIBS}
projectM_pulseaudio_LDFLAGS = -static ${qt_LIBS}
projectM_pulseaudio_LDFLAGS = -static ${QT_LIBS}
projectM_pulseaudio_PROGRAM = projectM-pulseaudio

View File

@ -1,5 +1,12 @@
SUFFIXES = .hpp .cpp _moc.cpp _qrc.qrc
QT_CXXFLAGS = @QT_CXXFLAGS@
QT_LIBS = @QT_LIBS@
MOC = @QT_MOC@
UIC = @QT_UIC@
RCC = @QT_RCC@
projectM_qt_qtheaders = qprojectm_mainwindow.hpp \
qpresetfiledialog.hpp \
qplaylistfiledialog.hpp \
@ -14,20 +21,19 @@ projectM_qt_qtheaders = qprojectm_mainwindow.hpp \
nodist_projectM_qt_moc_sources = $(projectM_qt_qtheaders:.hpp=_moc.cpp)
.hpp_moc.cpp:
@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(MOC_CPPFLAGS)\
$(qt_CPPFLAGS) $(qt_LDFLAGS) $<
$(MOC) -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $<
ui_qprojectm_mainwindow.h: qprojectm_mainwindow.ui
@UIC@ -o $@ $<
$(UIC) -o $@ $<
ui_qpreseteditordialog.h: qpreseteditordialog.ui
@UIC@ -o $@ $<
$(UIC) -o $@ $<
ui_qprojectmconfigdialog.h: qprojectmconfigdialog.ui
@UIC@ -o $@ $<
$(UIC) -o $@ $<
application_qrc.cpp: application.qrc
@RCC@ -o $@ $<
$(RCC) -o $@ $<
BUILT_SOURCES = \
@ -63,8 +69,7 @@ AM_CPPFLAGS = \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-I${top_srcdir}/src/libprojectM \
-I${top_srcdir}/src/libprojectM/Renderer \
${qt_CFLAGS} \
${qt_CPPFLAGS} \
${QT_CXXFLAGS} \
-fPIC
AM_CFLAGS = ${my_CFLAGS} \