mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-04-26 16:34:53 +00:00
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:
committed by
GitHub
parent
8cafafab65
commit
0378ee77ee
@ -47,6 +47,7 @@ matrix:
|
||||
- clang-5.0
|
||||
- libglm-dev
|
||||
- libc++-dev
|
||||
- qt5-default
|
||||
- qtdeclarative5-dev
|
||||
- libqt5opengl5-dev
|
||||
- libjack-dev
|
||||
|
||||
@ -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`
|
||||
|
||||
33
configure.ac
33
configure.ac
@ -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
7
m4/autoconf-archive/ax_have_qt.m4
Executable file → Normal 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)
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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} \
|
||||
|
||||
Reference in New Issue
Block a user