diff --git a/.travis.yml b/.travis.yml index 7ff14ca87..32e8604eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ before_install: - eval "${MATRIX_EVAL}" script: - - ./configure --prefix=$PWD/local && make -j8 && make install # build from checkoout - - make dist && tar -zxf projectM-*.tar.gz && cd projectM-* && ./configure --prefix=$PWD/local && make -j8 && make install # build from dist\ + - ./configure --enable-sdl --prefix=$PWD/local && make -j8 && make install # build from checkoout + - make dist && tar -zxf projectM-*.tar.gz && cd projectM-* && ./configure --enable-sdl --prefix=$PWD/local && make -j8 && make install # build from dist\ - echo "PWD $PWD" - ls . - test -e src/projectM-sdl/projectMSDL diff --git a/Makefile.am b/Makefile.am index 4dc536589..b8623785d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -20,3 +20,14 @@ pm_shaders__DATA = src/libprojectM/Renderer/blur.cg \ install-data-local: test -z $(pkgdatadir) || $(MKDIR_P) $(pm_presets_dir) find "$(PRESETSDIR)" -type f -exec $(INSTALL_DATA) {} $(pm_presets_dir) \; + +# from https://stackoverflow.com/questions/30897170/ac-subst-does-not-expand-variable answer: https://stackoverflow.com/a/30960268 +# ptomato https://stackoverflow.com/users/172999/ptomato + +src/libprojectM/config.inp: src/libprojectM/config.inp.in Makefile + $(AM_V_GEN)rm -f $@ $@.tmp && \ + $(SED) -e "s,%datadir%,$(datadir),"g $< >$@.tmp && \ + chmod a-w $@.tmp && \ + mv $@.tmp $@ + +CLEANFILES += src/libprojectM/config.inp diff --git a/configure.ac b/configure.ac index 07292b451..e1c4a68ca 100644 --- a/configure.ac +++ b/configure.ac @@ -33,8 +33,23 @@ AS_IF([test "x$enable_sdl" = "xyes"], [ AC_CONFIG_FILES([src/projectM-sdl/Makefile]) ]) -dnl FIXME -AC_CONFIG_FILES([src/libprojectM/config.inp], [sed -i -e"s/\${prefix}/$prefix/" src/libprojectM/config.inp]) +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/NativePresets/Makefile +]) + +dnl from https://stackoverflow.com/questions/30897170/ac-subst-does-not-expand-variable answer: https://stackoverflow.com/a/30960268 +dnl ptomato https://stackoverflow.com/users/172999/ptomato + +AC_SUBST([PACKAGE]) +AC_PROG_SED +AC_CONFIG_FILES([src/libprojectM/config.inp.in]) AC_PREFIX_DEFAULT([/usr/local]) @@ -49,11 +64,11 @@ AS_IF([test "x$enable_qt" = "xyes"], [ 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]) @@ -62,7 +77,7 @@ AS_IF([test "x$enable_qt" = "xyes"], [ 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.])]) ]) diff --git a/src/Makefile.am b/src/Makefile.am index e8da1ea7f..ea0af3a36 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,9 +1,9 @@ if ENABLE_SDL - PROJECTM_SDL_SUBDIR = projectM-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} +SUBDIRS=libprojectM NativePresets ${PROJECTM_SDL_SUBDIR} ${PROJECTM_QT_SUBDIR} diff --git a/src/NativePresets/Makefile.am b/src/NativePresets/Makefile.am new file mode 100644 index 000000000..9a7e4f480 --- /dev/null +++ b/src/NativePresets/Makefile.am @@ -0,0 +1,29 @@ +AM_CPPFLAGS = \ +-include $(top_builddir)/config.h \ +-I${top_srcdir}/src/libprojectM \ +-I${top_srcdir}/src/libprojectM/Renderer \ +-I${top_srcdir}/src/libprojectM/NativePresetFactory + +AM_CFLAGS = ${my_CFLAGS} \ +-fvisibility=hidden \ +-ffunction-sections \ +-fdata-sections + +presetsdir = $(pkgdatadir)/presets + +# native presets are shared object files. +# they should get installed to $presetsdir/ +presets_LTLIBRARIES = \ + libMstressJuppyDancer.la \ + libRLGFractalDrop7c.la \ + libRovastarDarkSecret.la \ + libRovastarDriftingChaos.la \ + libRovastarFractalSpiral.la \ + libRovastarFractopiaFrantic.la + +libMstressJuppyDancer_la_SOURCES = MstressJuppyDancer.cpp +libRLGFractalDrop7c_la_SOURCES = RLGFractalDrop7c.cpp +libRovastarDarkSecret_la_SOURCES = RovastarDarkSecret.cpp +libRovastarDriftingChaos_la_SOURCES = RovastarDriftingChaos.cpp +libRovastarFractalSpiral_la_SOURCES = RovastarFractalSpiral.cpp +libRovastarFractopiaFrantic_la_SOURCES = RovastarFractopiaFrantic.cpp diff --git a/src/NativePresets/RLGFractalDrop7c.cpp b/src/NativePresets/RLGFractalDrop7c.cpp index fe9640956..17b0de039 100644 --- a/src/NativePresets/RLGFractalDrop7c.cpp +++ b/src/NativePresets/RLGFractalDrop7c.cpp @@ -11,6 +11,7 @@ #include "MilkdropCompatability.hpp" #include "VideoEcho.hpp" #include "NativePreset.hpp" +#include "MilkdropWaveform.hpp" class RLGFractalDrop7c : public Pipeline { @@ -140,7 +141,7 @@ public: shape4.ang = time; } - virtual Point PerPixel(Point p, const PerPixelContext context) + virtual PixelPoint PerPixel(PixelPoint p, const PerPixelContext context) { Transforms::Zoom(p,context,1.029902,1.00); return p; @@ -149,7 +150,7 @@ public: }; -typedef NativePreset RLGFractalDrop7Preset; +typedef NativePreset RLGFractalDrop7Preset; extern "C" RLGFractalDrop7Preset * create(const char * url) { return new RLGFractalDrop7Preset(std::string(url)); diff --git a/src/libprojectM/NativePresetFactory/NativePresetFactory.hpp b/src/libprojectM/NativePresetFactory/NativePresetFactory.hpp index 3e8febd4c..f8aa078ac 100644 --- a/src/libprojectM/NativePresetFactory/NativePresetFactory.hpp +++ b/src/libprojectM/NativePresetFactory/NativePresetFactory.hpp @@ -1,7 +1,7 @@ // // C++ Interface: NativePresetFactory // -// Description: +// Description: // // // Author: Carmelo Piccione , (C) 2008 @@ -26,16 +26,16 @@ public: virtual ~NativePresetFactory(); - virtual std::auto_ptr allocate(const std::string & url, const std::string & name = std::string(), + virtual std::auto_ptr allocate(const std::string & url, const std::string & name = std::string(), const std::string & author = std::string()); - virtual std::string supportedExtensions() const { return "so"; } + virtual std::string supportedExtensions() const { return "so dylib"; } private: PresetLibrary * loadLibrary(const std::string & url); typedef std::map PresetLibraryMap; PresetLibraryMap _libraries; - + }; #endif diff --git a/src/libprojectM/config.inp.in b/src/libprojectM/config.inp.in.in similarity index 89% rename from src/libprojectM/config.inp.in rename to src/libprojectM/config.inp.in.in index 26826a274..878f54f0c 100644 --- a/src/libprojectM/config.inp.in +++ b/src/libprojectM/config.inp.in.in @@ -16,6 +16,6 @@ Easter Egg Parameter = 1 Hard Cut Sensitivity = 10 # Lower to make hard cuts more frequent Aspect Correction = true # Custom Shape Aspect Correction -Preset Path = @datarootdir@/presets # preset location +Preset Path = %datadir%/@PACKAGE@/presets # preset location Title Font = Vera.ttf Menu Font = VeraMono.ttf