diff -rupN clementine-0.4.2.old/CMakeLists.txt clementine-0.4.2/CMakeLists.txt --- clementine-0.4.2.old/CMakeLists.txt 2010-07-01 14:18:22.000000000 -0400 +++ clementine-0.4.2/CMakeLists.txt 2010-07-16 22:31:50.000000000 -0400 @@ -123,7 +123,16 @@ endif(NOT GETTEXT_XGETTEXT_EXECUTABLE) option(ENABLE_VISUALISATIONS "Use libprojectm visualisations" ON) option(BUNDLE_PROJECTM_PRESETS "Install Clementine's own copies of libprojectm presets - disable this if you want to use a system package instead" ON) if(ENABLE_VISUALISATIONS) - add_subdirectory(3rdparty/libprojectm) + # When/if upstream accepts our patches then these options can be used to link + # to system installed 3rdparty libraries instead. + option(USE_SYSTEM_PROJECTM "Don't set this option unless your system projectM library has been compiled with the Clementine patches in 3rdparty" OFF) + if(USE_SYSTEM_PROJECTM) + pkg_check_modules(LIBPROJECTM libprojectM) + else(USE_SYSTEM_PROJECTM) + add_subdirectory(3rdparty/libprojectm) + set(LIBPROJECTM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/libprojectm) + set(LIBPROJECTM_LIBRARIES projectM) + endif(USE_SYSTEM_PROJECTM) endif(ENABLE_VISUALISATIONS) # Test whether libsqlite3 is available and if FTS3 is enabled in it diff -rupN clementine-0.4.2.old/src/CMakeLists.txt clementine-0.4.2/src/CMakeLists.txt --- clementine-0.4.2.old/src/CMakeLists.txt 2010-07-01 14:17:36.000000000 -0400 +++ clementine-0.4.2/src/CMakeLists.txt 2010-07-16 22:34:36.000000000 -0400 @@ -9,11 +9,11 @@ include_directories(../3rdparty/gmock/gt include_directories(../3rdparty/qtsingleapplication) include_directories(../3rdparty/qtiocompressor) include_directories(../3rdparty/qxt) -include_directories(../3rdparty/libprojectm) -include_directories(${GLIB_INCLUDE_DIRECTORIES}) -include_directories(${LIBXML_INCLUDE_DIRECTORIES}) -include_directories(${GOBJECT_INCLUDE_DIRECTORIES}) +include_directories(${GLIB_INCLUDE_DIRS}) +include_directories(${LIBXML_INCLUDE_DIRS}) +include_directories(${GOBJECT_INCLUDE_DIRS}) +include_directories(${LIBPROJECTM_INCLUDE_DIRS}) cmake_policy(SET CMP0011 NEW) include(../cmake/AddEngine.cmake) @@ -461,7 +461,7 @@ target_link_libraries(clementine_lib ) if(ENABLE_VISUALISATIONS) - target_link_libraries(clementine_lib projectM) + target_link_libraries(clementine_lib ${LIBPROJECTM_LIBRARIES}) endif(ENABLE_VISUALISATIONS) if (APPLE) diff -rupN clementine-0.4.2.old/src/config.h.in clementine-0.4.2/src/config.h.in --- clementine-0.4.2.old/src/config.h.in 2010-07-01 14:17:34.000000000 -0400 +++ clementine-0.4.2/src/config.h.in 2010-07-16 22:35:04.000000000 -0400 @@ -27,6 +27,7 @@ #cmakedefine ENABLE_VISUALISATIONS #cmakedefine VISUALISATIONS_USE_INSTALL_PREFIX +#cmakedefine USE_SYSTEM_PROJECTM #cmakedefine SNOW_LEOPARD #cmakedefine LEOPARD diff -rupN clementine-0.4.2.old/src/visualisations/projectmpresetmodel.cpp clementine-0.4.2/src/visualisations/projectmpresetmodel.cpp --- clementine-0.4.2.old/src/visualisations/projectmpresetmodel.cpp 2010-07-01 14:16:36.000000000 -0400 +++ clementine-0.4.2/src/visualisations/projectmpresetmodel.cpp 2010-07-16 22:36:19.000000000 -0400 @@ -14,10 +14,15 @@ along with Clementine. If not, see . */ +#include "config.h" #include "projectmpresetmodel.h" #include "projectmvisualisation.h" -#include +#ifdef USE_SYSTEM_PROJECTM +# include +#else +# include "projectM.hpp" +#endif #include #include diff -rupN clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp clementine-0.4.2/src/visualisations/projectmvisualisation.cpp --- clementine-0.4.2.old/src/visualisations/projectmvisualisation.cpp 2010-07-01 14:16:36.000000000 -0400 +++ clementine-0.4.2/src/visualisations/projectmvisualisation.cpp 2010-07-16 22:37:32.000000000 -0400 @@ -30,7 +30,11 @@ #include #include -#include +#ifdef USE_SYSTEM_PROJECTM +# include +#else +# include "projectM.hpp" +#endif #ifdef Q_OS_MAC # include "core/mac_startup.h" diff -rupN clementine-0.4.2.old/src/visualisations/visualisationselector.cpp clementine-0.4.2/src/visualisations/visualisationselector.cpp --- clementine-0.4.2.old/src/visualisations/visualisationselector.cpp 2010-07-01 14:16:36.000000000 -0400 +++ clementine-0.4.2/src/visualisations/visualisationselector.cpp 2010-07-16 22:38:00.000000000 -0400 @@ -14,6 +14,7 @@ along with Clementine. If not, see . */ +#include "config.h" #include "projectmpresetmodel.h" #include "projectmvisualisation.h" #include "visualisationselector.h" @@ -21,7 +22,11 @@ #include -#include +#ifdef USE_SYSTEM_PROJECTM +# include +#else +# include "projectM.hpp" +#endif VisualisationSelector::VisualisationSelector(QWidget *parent) : QDialog(parent),