mirror of
https://github.com/projectM-visualizer/projectm.git
synced 2026-03-05 06:55:20 +00:00
qprojectM made a library in it's own right on the cmake / pkgconfig side of things
bug fixes and lots of error checking added to make installation easier for n00bs git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@825 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
@ -6,7 +6,7 @@ pkgdatadir=@CMAKE_INSTALL_PREFIX@/share/projectM
|
||||
sysconfdir=@CMAKE_INSTALL_PREFIX@/share/projectM
|
||||
|
||||
Name: libprojectM
|
||||
Version: 1.00
|
||||
Version: 1.10
|
||||
Description: projectM - OpenGL Milkdrop
|
||||
Requires:
|
||||
+Libs: -L${libdir} -lprojectM
|
||||
|
||||
@ -7,17 +7,34 @@ INCLUDE(FindPkgConfig.cmake)
|
||||
FIND_PACKAGE(OpenGL)
|
||||
FIND_PACKAGE(SDL)
|
||||
|
||||
pkg_search_module(PROJECTM REQUIRED libprojectM)
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
else (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(LIBPROJECTM true)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
pkg_search_module(JACK REQUIRED jack)
|
||||
|
||||
if (JACK_FOUND)
|
||||
MESSAGE(STATUS "Jack detected")
|
||||
else (JACK_FOUND)
|
||||
MESSAGE(FATAL_ERROR "JACK is NOT found. Please install jack from http://www.jackaudio.org.")
|
||||
endif(JACK_FOUND)
|
||||
|
||||
if (LIBPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "projectM detected.")
|
||||
else(LIBPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
|
||||
endif(LIBPROJECTM_FOUND)
|
||||
|
||||
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='"${PROJECTM_PREFIX}"')
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS})
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${JACK_INCLUDEDIR} ${SDL_INCLUDE_DIR} ${GTK_INCLUDE_DIR})
|
||||
|
||||
@ -6,17 +6,34 @@ INCLUDE(FindPkgConfig.cmake)
|
||||
FIND_PACKAGE(OpenGL)
|
||||
FIND_PACKAGE(SDL)
|
||||
|
||||
pkg_search_module(PROJECTM REQUIRED libprojectM)
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
else (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(LIBPROJECTM true)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
pkg_search_module(LIBVISUAL REQUIRED libvisual-0.4)
|
||||
|
||||
if (LIBPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "projectM detected.")
|
||||
else(LIBPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
|
||||
endif(LIBPROJECTM_FOUND)
|
||||
|
||||
if(LIBVISUAL_FOUND)
|
||||
MESSAGE(STATUS "libvisual detected")
|
||||
else(LIBVISUAL_FOUND)
|
||||
MESSAGE(FATAL_ERROR "libvisual 0.4 not found! Please visit http://libvisual.sf.net and download the module.")
|
||||
endif(LIBVISUAL_FOUND)
|
||||
|
||||
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='"${PROJECTM_PREFIX}"')
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS})
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${LIBVISUAL_INCLUDEDIR} ${SDL_INCLUDE_DIR})
|
||||
|
||||
@ -10,7 +10,11 @@ INCLUDE(FindPkgConfig.cmake)
|
||||
FIND_PACKAGE(OpenGL)
|
||||
FIND_PACKAGE(SDL)
|
||||
|
||||
pkg_search_module(PROJECTM REQUIRED libprojectM)
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
else (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(LIBPROJECTM true)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='"${PROJECTM_PREFIX}"')
|
||||
|
||||
@ -18,8 +22,8 @@ if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS})
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${SDL_INCLUDE_DIR} ${GTK_INCLUDE_DIR})
|
||||
|
||||
@ -4,15 +4,36 @@ set(QT_USE_OPENGL TRUE)
|
||||
|
||||
include(${QT_USE_FILE} FindPkgConfig.cmake)
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
pkg_search_module(LIBQPROJECTM REQUIRED libqprojectM)
|
||||
else(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(LIBPROJECTM_FOUND true)
|
||||
set(LIBQPROJECTM_FOUND true)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
FIND_PACKAGE(OpenGL)
|
||||
FIND_PACKAGE(Qt4 REQUIRED)
|
||||
|
||||
# WRONG! How do I do this? using FIND_PACKAGE?
|
||||
##pkg_search_module(PROJECTM REQUIRED projectM qprojectM)
|
||||
|
||||
pkg_search_module(JACK REQUIRED jack)
|
||||
pkg_search_module(PROJECTM REQUIRED libprojectM)
|
||||
pkg_search_module(PROJECTM REQUIRED libqprojectM)
|
||||
|
||||
if (LIBPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "projectM detected.")
|
||||
else(LIBPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
|
||||
endif(LIBPROJECTM_FOUND)
|
||||
|
||||
if (LIBQPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "qprojectM detected.")
|
||||
else(LIBQPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "qprojectM NOT detected. Please install the qprojectM module or build from the top level projectM source directory.")
|
||||
endif(LIBQPROJECTM_FOUND)
|
||||
|
||||
if (JACK_FOUND)
|
||||
MESSAGE(STATUS "Jack detected")
|
||||
else (JACK_FOUND)
|
||||
MESSAGE(FATAL_ERROR "JACK is NOT found. Please install jack from http://www.jackaudio.org.")
|
||||
endif(JACK_FOUND)
|
||||
|
||||
# the variable "qprojectM_SRCS" contains all .cpp files of this project
|
||||
set(qprojectM_jack_SRCS
|
||||
@ -37,8 +58,8 @@ if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine ${PROJECTM_ROOT_SOURCE_DIR}/qprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine ${PROJECTM_ROOT_BINARY_DIR}/qprojectM)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libqprojectM ${LIBQPROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS} ${LIBQPROJECTM_LDFLAGS})
|
||||
# qprojectM places itself in same location as (lib)projectM
|
||||
# whether it should is a whole other issue
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
@ -4,33 +4,33 @@ set(QT_USE_OPENGL TRUE)
|
||||
|
||||
include(${QT_USE_FILE} FindPkgConfig.cmake)
|
||||
|
||||
# only search for these modules when not building monolithically
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
pkg_search_module(LIBQPROJECTM REQUIRED libqprojectM)
|
||||
else(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(LIBPROJECTM_FOUND true)
|
||||
set(LIBQPROJECTM_FOUND true)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
FIND_PACKAGE(OpenGL)
|
||||
FIND_PACKAGE(Qt4 REQUIRED)
|
||||
|
||||
# only search for these modules when not building monolithically
|
||||
|
||||
#if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
# set(LIBPROJECTM_FOUND true)
|
||||
# pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
# pkg_search_module(LIBQPROJECTM REQUIRED libqprojectM)
|
||||
#else(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
# set(LIBPROJECTM_FOUND true)
|
||||
# set(LIBQPROJECTM_FOUND true)
|
||||
#endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
|
||||
pkg_search_module(LIBPULSE REQUIRED libpulse)
|
||||
|
||||
#if (LIBPROJECTM_FOUND)
|
||||
#MESSAGE (STATUS "projectM detected.")
|
||||
#else(LIBPROJECTM_FOUND)
|
||||
#MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM #source directory.")
|
||||
#endif(LIBPROJECTM_FOUND)
|
||||
#
|
||||
#if (LIBQPROJECTM_FOUND)
|
||||
#MESSAGE (STATUS "qprojectM detected.")
|
||||
#else(LIBQPROJECTM_FOUND)
|
||||
#MESSAGE (FATAL_ERROR "qprojectM NOT detected. Please install the qprojectM module or build from the top level #projectM source directory.")
|
||||
#endif(LIBQPROJECTM_FOUND)
|
||||
if (LIBPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "projectM detected.")
|
||||
else(LIBPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "projectM NOT detected. Please install the projectM module or build from the top level projectM source directory.")
|
||||
endif(LIBPROJECTM_FOUND)
|
||||
|
||||
if (LIBQPROJECTM_FOUND)
|
||||
MESSAGE (STATUS "qprojectM detected.")
|
||||
else(LIBQPROJECTM_FOUND)
|
||||
MESSAGE (FATAL_ERROR "qprojectM NOT detected. Please install the qprojectM module or build from the top level projectM source directory.")
|
||||
endif(LIBQPROJECTM_FOUND)
|
||||
|
||||
if (LIBPULSE_FOUND)
|
||||
MESSAGE(STATUS "Pulse audio detected")
|
||||
@ -67,15 +67,15 @@ if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine ${PROJECTM_ROOT_SOURCE_DIR}/qprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine ${PROJECTM_ROOT_BINARY_DIR}/qprojectM)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM ${LIBQPROJECTM_INCLUDEDIR}/libqprojectM)
|
||||
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS} ${LIBQPROJECTM_LDFLAGS})
|
||||
# qprojectM places itself in same location as (lib)projectM
|
||||
# whether it should is a whole other issue
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTOPENGL_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
|
||||
|
||||
LINK_DIRECTORIES(${PROJECTM_LINK} ${PULSEAUDIO_LDFLAGS})
|
||||
LINK_DIRECTORIES(${PROJECTM_LINK} ${PULSEAUDIO_LDFLAGS})
|
||||
|
||||
ADD_EXECUTABLE(qprojectM-pulseaudio ${qprojectM_pulseaudio_SRCS} ${qprojectM_pulseaudio_MOC_SRCS} ${qprojectM_pulseaudio_UIS_H})
|
||||
|
||||
|
||||
@ -1,11 +1,20 @@
|
||||
# the next line sets up include and link directories and defines some variables that we will use.
|
||||
# you can modify the behavior by setting some variables, e.g.
|
||||
|
||||
project(qprojectM) # the name of your project
|
||||
|
||||
cmake_minimum_required(VERSION 2.4.0)
|
||||
|
||||
include(FindPkgConfig.cmake)
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(LIBPROJECTM_FOUND true)
|
||||
else(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
|
||||
endif(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
|
||||
find_package(Qt4 REQUIRED) # find and setup Qt4 for this project
|
||||
include(${QT_USE_FILE})
|
||||
|
||||
if (QT4_FOUND)
|
||||
MESSAGE(STATUS "Qt4 Detected fine.")
|
||||
@ -14,10 +23,15 @@ MESSAGE(FATAL_ERROR "Qt4 not detected. Please install Qt4 before continuing (vis
|
||||
endif(QT4_FOUND)
|
||||
set(QT_USE_OPENGL TRUE)
|
||||
|
||||
# -> this will cause cmake to include and link against the OpenGL module
|
||||
include(${QT_USE_FILE} FindPkgConfig.cmake)
|
||||
if (LIBPROJECTM_FOUND)
|
||||
MESSAGE(STATUS "projectM detected.")
|
||||
else (LIBPROJECTM_FOUND)
|
||||
MESSAGE(FATAL_ERROR "projectM not detected! Please install the projectM module or build from top level projectM source directory.")
|
||||
endif(LIBPROJECTM_FOUND)
|
||||
|
||||
|
||||
CONFIGURE_FILE("libqprojectM.pc.in" "libqprojectM.pc" @ONLY)
|
||||
|
||||
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='"${PROJECTM_PREFIX}"')
|
||||
ADD_DEFINITIONS(${QT_DEFINITIONS})
|
||||
ADD_DEFINITIONS(-DQT_PLUGIN)
|
||||
@ -69,12 +83,11 @@ ADD_LIBRARY(qprojectM SHARED ${qprojectM_SRCS} ${qprojectM_RC_SRCS} ${qprojectM_
|
||||
|
||||
SET_TARGET_PROPERTIES(qprojectM PROPERTIES VERSION 1.10 SOVERSION 1)
|
||||
|
||||
|
||||
if (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/projectM-engine)
|
||||
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine)
|
||||
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
|
||||
set(PROJECTM_INCLUDE ${PROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
|
||||
set(PROJECTM_LINK ${PROJECTM_LDFLAGS})
|
||||
endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
|
||||
|
||||
@ -85,5 +98,6 @@ include_directories(${PROJECTM_INCLUDE} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR
|
||||
# link the "qprojectM" target against the Qt libraries. which libraries exactly, is defined by the "include(${QT_USE_FILE})" line above, which sets up this variable.
|
||||
target_link_libraries(qprojectM projectM ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTXML_LIBRARIES} ${QT_LIBRARIES})
|
||||
|
||||
install(FILES QProjectM_MainWindow.hpp DESTINATION include/libprojectM)
|
||||
install(FILES QProjectM_MainWindow.hpp DESTINATION include/libqprojectM)
|
||||
install(TARGETS qprojectM DESTINATION lib)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/libqprojectM.pc" DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
|
||||
13
src/qprojectM/libqprojectM.pc.in
Normal file
13
src/qprojectM/libqprojectM.pc.in
Normal file
@ -0,0 +1,13 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=@CMAKE_INSTALL_PREFIX@
|
||||
libdir=@CMAKE_INSTALL_PREFIX@/lib
|
||||
includedir=@CMAKE_INSTALL_PREFIX@/include
|
||||
pkgdatadir=@CMAKE_INSTALL_PREFIX@/share/qprojectM
|
||||
sysconfdir=@CMAKE_INSTALL_PREFIX@/share/qprojectM
|
||||
|
||||
Name: libqprojectM
|
||||
Version: 1.10
|
||||
Description: qprojectM - provides a full featured Qt4 graphical user interface to projectM
|
||||
Requires: libprojectM QtCore QtGui QtXml QtOpenGL
|
||||
+Libs: -L${libdir} -lqprojectM
|
||||
+Cflags: -I${includedir}
|
||||
Reference in New Issue
Block a user