blob: 84a6798a890bca69a242000fbd8d9a577da551cf [file] [log] [blame]
PROJECT(projectM-jack)
cmake_minimum_required(VERSION 2.4.0)
cmake_policy(SET CMP0005 OLD)
INCLUDE(cmake/CPack-projectM.cmake)
OPTION(QT_JACK_SUPPORT "Enable Qt4 GUI Support for the projectM jack port" ON)
OPTION(BUILD_PROJECTM_JACK_STATIC "Build a binary that only depends on jack and stnadard MACOSX libraries" OFF)
if (QT_JACK_SUPPORT)
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(LIBPROJECTM-QT REQUIRED libprojectM-qt)
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='\"${LIBPROJECTM_PREFIX}\"')
else(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
set(LIBPROJECTM_FOUND true)
set(LIBPROJECTM-QT_FOUND true)
ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='\"${CMAKE_INSTALL_PREFIX}\"')
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
if (APPLE)
ADD_DEFINITIONS(-DRESOURCE_PREFIX='\"Resources\"')
else (APPLE)
ADD_DEFINITIONS(-DRESOURCE_PREFIX='\"share/projectM\"')
endif (APPLE)
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(Qt4 REQUIRED)
pkg_search_module(JACK REQUIRED jack)
if (LIBPROJECTM_FOUND)
MESSAGE (STATUS "[projectM-jack] 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 (LIBPROJECTM-QT_FOUND)
MESSAGE (STATUS "[projectM-jack] projectM-qt detected.")
else(LIBPROJECTM-QT_FOUND)
MESSAGE (FATAL_ERROR "projectM-qt NOT detected. Please install the projectM-qt module or build from the top level projectM source directory. You can also disable QT_PROJECTM_JACK support and use the SDL port instead")
endif(LIBPROJECTM-QT_FOUND)
if (JACK_FOUND)
MESSAGE(STATUS "[projectM-jack] jack detected.")
else (JACK_FOUND)
MESSAGE( "JACK is NOT found. Please install jack from http://www.jackaudio.org.")
endif(JACK_FOUND)
set(projectM_jack_SRCS
qprojectM-jack.cpp ConfigFile.h ConfigFile.cpp
)
set(projectM_jack_MOC_HDRS
)
# After this call, foo_MOC_SRCS = moc_Class1.cxx moc_Class2.cxx moc_Class3.cxx.
qt4_wrap_cpp(projectM_jack_MOC_SRCS ${projectM_MOC_HDRS})
ADD_DEFINITIONS(-DLINUX)
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_NO_DEBUG)
if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
set(PROJECTM_INCLUDE ${PROJECTM_ROOT_SOURCE_DIR}/libprojectM ${PROJECTM_ROOT_SOURCE_DIR}/projectM-qt)
set(PROJECTM_LINK ${PROJECTM_ROOT_BINARY_DIR}/libprojectM ${PROJECTM_ROOT_BINARY_DIR}/projectM-qt)
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM-qt ${LIBPROJECTM-QT_INCLUDEDIR}/libprojectM)
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS} ${LIBPROJECTM-QT_LDFLAGS})
# projectM-qt places itself in same location as (lib)projectM
# whether it should is a whole other issue
endif (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${JACK_INCLUDEDIR} ${SDL_INCLUDE_DIR} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTOPENGL_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR})
LINK_DIRECTORIES(${PROJECTM_LINK})
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
ADD_EXECUTABLE(projectM-jack ${projectM_jack_SRCS} ${projectM_jack_MOC_SRCS})
if (BUILD_PROJECTM_JACK_STATIC)
if (BUILD_PROJECTM_QT_STATIC)
SET(PACKAGED_LIBRARIES ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine/libprojectM.a ${PROJECTM_ROOT_BINARY_DIR}/projectM-qt/libprojectM-qt.a)
else(BUILD_PROJECTM_QT_STATIC)
SET(PACKAGED_LIBRARIES ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine/libprojectM.a projectM-qt)
endif(BUILD_PROJECTM_QT_STATIC)
else (BUILD_PROJECTM_JACK_STATIC)
SET(PACKAGED_LIBRARIES projectM-qt projectM)
endif (BUILD_PROJECTM_JACK_STATIC)
TARGET_LINK_LIBRARIES(projectM-jack ${PACKAGED_LIBRARIES} jack ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTCORE_LIBRARIES} ${QT_LIBRARIES} ${OPENGL_LIBRARIES} ${QT_QTXML_LIBRARIES})
INSTALL(TARGETS projectM-jack DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
install(FILES "projectM-jack.desktop" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
else (QT_JACK_SUPPORT)
ADD_EXECUTABLE(projectM-jack projectM-jack.cpp sdltoprojectM.h video_init.cpp ConfigFile.h ConfigFile.cpp)
INCLUDE(FindPkgConfig.cmake)
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(SDL)
if (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
else (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
set(LIBPROJECTM_FOUND true)
endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
pkg_search_module(JACK REQUIRED jack)
if (JACK_FOUND)
MESSAGE(STATUS "[projectM-jack] 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-jack] 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 (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
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 ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS})
endif (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${JACK_INCLUDEDIR} ${SDL_INCLUDE_DIR})
LINK_DIRECTORIES(${PROJECTM_LINK} ${JACK_LDFLAGS})
TARGET_LINK_LIBRARIES(projectM-jack projectM jack ${SDL_LIBRARY})
INSTALL(TARGETS projectM-jack DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
install(FILES "projectM-jack.desktop" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
endif(QT_JACK_SUPPORT)