Merge branch 'qt' of github.com:projectM-visualizer/projectm into qt

This commit is contained in:
Mischa Spiegelmock
2018-04-02 22:57:07 -07:00
7 changed files with 167 additions and 98 deletions

View File

@ -11,6 +11,16 @@ AX_CHECK_GL
AC_CHECK_LIB(c, dlopen, LIBDL="", AC_CHECK_LIB(dl, dlopen, LIBDL="-ldl"))
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
src/libprojectM/Makefile
src/libprojectM/Renderer/Makefile
src/libprojectM/NativePresetFactory/Makefile
src/libprojectM/MilkdropPresetFactory/Makefile
])
dnl SDL
AC_ARG_ENABLE([sdl],
AS_HELP_STRING([--enable-sdl], [Build SDL2 app]),
@ -20,18 +30,9 @@ AS_IF([test "x$enable_sdl" = "xyes"], [
SDL_VERSION=2.0.5
AS_IF([test "$TRAVIS"], [SDL_VERSION=2.0.2]) # travis has old SDL, we don't care
AM_PATH_SDL2($SDL_VERSION, :, AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]))
AC_CONFIG_FILES([src/projectM-sdl/Makefile])
])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
src/Makefile
src/libprojectM/Makefile
src/libprojectM/Renderer/Makefile
src/libprojectM/NativePresetFactory/Makefile
src/libprojectM/MilkdropPresetFactory/Makefile
src/projectM-sdl/Makefile
])
dnl FIXME
AC_CONFIG_FILES([src/libprojectM/config.inp], [sed -i -e"s/\${prefix}/$prefix/" src/libprojectM/config.inp])
@ -44,24 +45,31 @@ AC_ARG_ENABLE([qt],
AS_HELP_STRING([--enable-qt], [Build Qt]),
[], [enable_qt=no])
AS_IF([test "x$enable_qt" = "xyes"], [
PKG_CHECK_MODULES(QT, [Qt5Core, Qt5Gui], [], [AC_MSG_ERROR([Qt libraries are required.])])
qt_CPPFLAGS="`$PKG_CONFIG --cflags-only-I Qt5Core Qt5Gui` $CPPFLAGS"
qt_LDFLAGS="`$PKG_CONFIG --libs-only-L Qt5Core Qt5Gui` $LDFLAGS"
qt_LIBS="`$PKG_CONFIG --libs-only-l Qt5Core Qt5Gui` $LIBS"
if ! `$PKG_CONFIG --atleast-version=5.0.0 Qt5Core`; then
AC_MSG_ERROR([Qt >= 5.0.0 is required. Try installing qtdeclarative5-dev])
fi
AC_CHECK_PROGS(MOC, [moc-qt5 moc])
AC_CHECK_PROGS(UIC, [uic-qt5 uic])
AC_CHECK_PROGS(RCC, [rcc])
if test -z "$MOC" || test -z "$UIC" || test -z "$RCC"; then
AC_MSG_ERROR([Qt utility programs moc, uic, and rcc are required.])
fi
AC_CONFIG_FILES([src/projectM-qt/Makefile])
PKG_CHECK_MODULES(QT, [Qt5Core, Qt5Gui, Qt5Widgets Qt5OpenGL], [], [AC_MSG_ERROR([Qt libraries are required.])])
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"
if ! `$PKG_CONFIG --atleast-version=5.0.0 Qt5Core`; then
AC_MSG_ERROR([Qt >= 5.0.0 is required. Try installing qtdeclarative5-dev])
fi
AC_CHECK_PROGS(MOC, [moc-qt5 moc])
AC_CHECK_PROGS(UIC, [uic-qt5 uic])
AC_CHECK_PROGS(RCC, [rcc])
if test -z "$MOC" || test -z "$UIC" || test -z "$RCC"; then
AC_MSG_ERROR([Qt utility programs moc, uic, and rcc are required.])
fi
AC_CONFIG_FILES([src/projectM-qt/Makefile])
AC_CONFIG_FILES([src/projectM-pulseaudio/Makefile])
PKG_CHECK_MODULES(LIBPULSE, [libpulse], [], [AC_MSG_ERROR([Pulseaudio library libpulse is required.])])
])
AM_CONDITIONAL([ENABLE_SDL], [test "$enable_sdl" = yes])
AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" = yes])
my_CFLAGS="-Wall -Wchar-subscripts -Wformat-security -Wmissing-declarations -Wpointer-arith -Wshadow -Wsign-compare -Wtype-limits "
AC_SUBST([my_CFLAGS])

View File

@ -1 +1,9 @@
SUBDIRS=libprojectM projectM-sdl
if ENABLE_SDL
PROJECTM_SDL_SUBDIR = projectM-sdl
endif
if ENABLE_QT
PROJECTM_QT_SUBDIR = projectM-qt projectM-pulseaudio
endif
SUBDIRS=libprojectM ${PROJECTM_SDL_SUBDIR} ${PROJECTM_QT_SUBDIR}

View File

@ -0,0 +1,62 @@
SUFFIXES = .hpp .cpp _moc.cpp _qrc.qrc
projectM_pulseaudio_qtheaders = \
QPulseAudioDeviceChooser.hpp \
QPulseAudioDeviceModel.hpp \
QPulseAudioThread.hpp
projectM_pulseaudio_moc_sources = $(projectM_pulseaudio_qtheaders:.hpp=_moc.cpp)
.hpp_moc.cpp:
@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(MOC_CPPFLAGS)\
$(qt_CPPFLAGS) $(qt_LDFLAGS) $(qt_LIBS) $<
ui_PulseDeviceChooserDialog.h: PulseDeviceChooserDialog.ui
@UIC@ -o $@ $<
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-DPROJECTM_PREFIX=\""${prefix}"\" \
-I${top_srcdir}/src/libprojectM \
-I${top_srcdir}/src/libprojectM/Renderer \
-I${top_srcdir}/src/projectM-qt \
${QT_CFLAGS} \
${LIBPULSE_CFLAGS} \
-fPIC
AM_CFLAGS = ${my_CFLAGS} \
-fvisibility=hidden \
-ffunction-sections \
-fdata-sections
bin_PROGRAMS = projectM-pulseaudio
projectM_pulseaudio_SOURCES = \
$(projectM_pulseaudio_moc_sources) \
qprojectM-pulseaudio.cpp \
QPulseAudioDeviceChooser.cpp \
QPulseAudioDeviceModel.cpp \
QPulseAudioThread.cpp
projectM_pulseaudio_LDADD = \
${QT_LIBS} \
${LIBPULSE_LIBS} \
${top_srcdir}/src/projectM-qt/libprojectM_qt.a \
${top_srcdir}/src/libprojectM/libprojectM.la
projectM_pulseaudio_LDFLAGS = -static
projectM_pulseaudio_PROGRAM = projectM-pulseaudio
BUILT_SOURCES = \
ui_PulseDeviceChooserDialog.h
CLEANFILES = \
${BUILT_SOURCES} \
${projectM_pulseaudio_moc_sources}
desktopdir = $(datadir)/applications
dist_desktop_DATA = projectM-pulseaudio.desktop
dist_man_MANS = projectM-pulseaudio.1

View File

@ -1,55 +1,69 @@
SUFFIXES = .hpp .cpp _moc.cpp _qrc.qrc
projectM_qt_qtheaders = qprojectm_mainwindow.hpp \
qpresetfiledialog.hpp \
qplaylistfiledialog.hpp \
qplaylistmodel.hpp \
qprojectmconfigdialog.hpp \
qplaylisttableview.hpp \
qpresettextedit.hpp \
qpreseteditordialog.hpp \
qprojectm.hpp \
qprojectmwidget.hpp
projectM_qt_moc_sources = $(projectM_qt_qtheaders:.h=_moc.cpp)
.h_moc.cpp:
@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(MOC_CPPFLAGS)\
$(qt_CPPFLAGS) $(qt_LDFLAGS) $(qt_LIBS) $<
qpresetfiledialog.hpp \
qplaylistfiledialog.hpp \
qplaylistmodel.hpp \
qprojectmconfigdialog.hpp \
qplaylisttableview.hpp \
qpresettextedit.hpp \
qpreseteditordialog.hpp \
qprojectm.hpp \
qprojectmwidget.hpp
.h_ui.ui:
@UIC@ -o $@ $<
projectM_qt_moc_sources = $(projectM_qt_qtheaders:.hpp=_moc.cpp)
.cpp_qrc.qrc:
@RCC@ -o $@ $<
.hpp_moc.cpp:
@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(MOC_CPPFLAGS)\
$(qt_CPPFLAGS) $(qt_LDFLAGS) $(qt_LIBS) $<
bin_PROGRAMS = projectM-qt
ui_qprojectm_mainwindow.h: qprojectm_mainwindow.ui
@UIC@ -o $@ $<
ui_qpreseteditordialog.h: qpreseteditordialog.ui
@UIC@ -o $@ $<
ui_qprojectmconfigdialog.h: qprojectmconfigdialog.ui
@UIC@ -o $@ $<
projectM_qt_SOURCES = $(projectM_qt_moc_sources) \
qprojectm_mainwindow.cpp \
qprojectm_mainwindow.hpp \
configfile.hpp configfile.cpp \
qpresetfiledialog.hpp \
qplaylistfiledialog.cpp \
qplaylistfiledialog.hpp \
qplaylistmodel.cpp \
qplaylistmodel.hpp \
qxmlplaylisthandler.hpp \
qprojectmconfigdialog.cpp \
qprojectmconfigdialog.hpp \
qplaylisttableview.hpp \
qpresettextedit.cpp \
qpresettextedit.hpp \
qpreseteditordialog.cpp \
qpreseteditordialog.hpp \
qprojectm.hpp \
qprojectmwidget.hpp
application_qrc.cpp: application.qrc
@RCC@ -o $@ $<
BUILT_SOURCES = \
ui_qprojectm_mainwindow.h \
ui_qpreseteditordialog.h \
ui_qprojectmconfigdialog.h
noinst_LIBRARIES = libprojectM_qt.a
libprojectM_qt_a_SOURCES = \
$(projectM_qt_moc_sources) \
qprojectm_mainwindow.cpp \
configfile.hpp configfile.cpp \
qplaylistfiledialog.cpp \
qplaylistmodel.cpp \
qprojectmconfigdialog.cpp \
qpresettextedit.cpp \
qpreseteditordialog.cpp \
application_qrc.cpp \
$(test_moc_sources)
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-I${top_srcdir}/src/libprojectM \
-I${top_srcdir}/src/libprojectM/Renderer \
${SDL_CFLAGS}
-include $(top_builddir)/config.h \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-I${top_srcdir}/src/libprojectM \
-I${top_srcdir}/src/libprojectM/Renderer \
${QT_CFLAGS} \
-fPIC
AM_CFLAGS = ${my_CFLAGS} \
-fvisibility=hidden \
-ffunction-sections \
-fdata-sections
-fvisibility=hidden \
-ffunction-sections \
-fdata-sections
CLEANFILES = \
application_qrc.cpp \
${BUILT_SOURCES} \
${projectM_qt_moc_sources}

View File

@ -1,13 +0,0 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=@CMAKE_INSTALL_PREFIX@
libdir=@LIB_INSTALL_DIR@
includedir=@CMAKE_INSTALL_PREFIX@/include
pkgdatadir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt
sysconfdir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt
Name: libprojectM-qt
Version: 1.2.0
Description: projectM-qt provides a full featured Qt4 graphical user interface to projectM
Requires: libprojectM QtCore QtGui QtXml QtOpenGL
+Libs: -L${libdir} -lprojectM-qt
+Cflags: -I${includedir}

View File

@ -38,6 +38,8 @@
#include "nullable.hpp"
#include "qprojectmwidget.hpp"
extern int qInitResources();
class PlaylistWriteFunctor {
public:
PlaylistWriteFunctor(const QVector<QProjectM_MainWindow::PlaylistItemMetaData*>::iterator & begin,
@ -77,7 +79,7 @@ QProjectM_MainWindow::QProjectM_MainWindow ( const std::string & config_file, QM
configDialog(0), hHeader(0), vHeader(0), _menuVisible(true), _menuAndStatusBarsVisible(true),
activePresetIndex(new Nullable<long>), playlistItemCounter(0), m_QPresetEditorDialog(0)
{
qInitResources();
ui = new Ui::QProjectM_MainWindow();
ui->setupUi ( this );

View File

@ -1,12 +0,0 @@
SOURCES += qgltest.cpp \
main.cpp
HEADERS += qgltest.h \
QProjectMFileDialog.hpp
TEMPLATE = app
CONFIG += warn_on \
thread \
qt
TARGET = ../bin/qgltest
RESOURCES = application.qrc
DISTFILES += ../CMakeLists.txt \
CMakeLists.txt