partially complete cmake files for libprojectM subdirectories

git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/personal/carm/represet@1176 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
w1z7ard
2008-09-20 05:31:51 +00:00
parent c9ea485f51
commit 5ec690773a
5 changed files with 338 additions and 9 deletions

View File

@ -28,13 +28,8 @@ SET(GLEW_SOURCES )
SET (GLEW_LINK_TARGETS GLEW)
endif(USE_NATIVE_GLEW)
SET(projectM_SOURCES projectM.cpp FBO.cpp InitCond.cpp
Expr.cpp PCM.cpp Parser.cpp Preset.cpp BeatDetect.cpp PerPixelEqn.cpp Param.cpp CustomWave.cpp CustomShape.cpp
Func.cpp Eval.cpp PerFrameEqn.cpp PerPointEqn.cpp fftsg.cpp KeyHandler.cpp
timer.cpp wipemalloc.cpp BuiltinFuncs.cpp BuiltinParams.cpp Renderer.cpp
PresetLoader.cpp PresetChooser.cpp PresetFrameIO.cpp PresetMerge.cpp PipelineContext.cpp
ConfigFile.cpp IdlePreset.cpp TextureManager.cpp TimeKeeper.cpp Filters.cpp Renderable.cpp Pipeline.cpp PerPixelMesh.cpp
MilkdropWaveform.cpp Waveform.cpp VideoEcho.cpp Shader.cpp PerlinNoise.cpp UserTexture.cpp ShaderEngine.cpp MilkdropPreset.cpp MilkdropPresetFactory.cpp NativePresetFactory.cpp PresetFactory.cpp PresetFactoryManager.cpp ${GLEW_SOURCES})
SET(projectM_SOURCES projectM.cpp FBO.cpp PCM.cpp Preset.cpp BeatDetect.cpp fftsg.cpp KeyHandler.cpp
timer.cpp wipemalloc.cpp BuiltinFuncs.cpp BuiltinParams.cpp Renderer.cpp PresetLoader.cpp PresetChooser.cpp PresetMerge.cpp PipelineContext.cpp ConfigFile.cpp IdlePreset.cpp TimeKeeper.cpp PresetFactory.cpp PresetFactoryManager.cpp ${GLEW_SOURCES})
if (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES})

View File

@ -1,9 +1,9 @@
#ifndef IDLE_PRESET_HPP
#define IDLE_PRESET_HPP
#include <memory>
#include "PresetFrameIO.hpp"
#include "Preset.hpp"
class PresetOutputs;
class Preset;
/// A preset that does not depend on the file system to be loaded. This allows projectM to render
/// something (ie. self indulgent project advertising) even when no valid preset directory is found.
class IdlePresets {

View File

@ -0,0 +1,12 @@
PROJECT(MilkdropPresetFactory)
cmake_minimum_required(VERSION 2.4.0)
SET(MilkdropPresetFactory_SOURCES BuiltinFuncs.cpp Func.cpp MilkdropPreset.cpp Param.hpp PresetFrameIO.cpp CustomShape.cpp Eval.cpp MilkdropPresetFactory.cpp PerPixelEqn.cpp BuiltinParams.cpp InitCond.cpp Parser.cpp CustomWave.cpp Expr.cpp PerPointEqn.cpp Param.cpp PerFrameEqn.cpp)
INCLUDE_DIRECTORIES("../" "../Renderer")
ADD_LIBRARY(MilkdropPresetFactory STATIC ${MilkdropPresetFactory_SOURCES})
SET_TARGET_PROPERTIES(MilkdropPresetFactory PROPERTIES VERSION 2.00 SOVERSION 2)
TARGET_LINK_LIBRARIES(MilkdropPresetFactory m)
INSTALL(TARGETS MilkdropPresetFactory DESTINATION lib${LIB_SUFFIX})

View File

@ -0,0 +1,161 @@
PROJECT(projectM)
cmake_minimum_required(VERSION 2.4.0)
OPTION (USE_DEVIL "Use devIL for image loading rather than the builtin SOIL library" OFF)
OPTION (USE_FBO "Use Framebuffer Objects for increased rendering quality. Disable this for OpenGL ES 1.x or if you are experiencing problems on older or poorly supported hardware." ON)
OPTION (USE_GLES1 "Use OpenGL ES 1.x" OFF)
OPTION (USE_OPENMP "Use OpenMP and OMPTL for multi-core paralellization" ON)
OPTION (USE_NATIVE_GLEW "Use projectM's native implemention of GLEW." OFF)
OPTION (USE_CG "Use Cg for Pixel Shader support" OFF)
#OPTION (FTGL_STATIC "Build the projectM target library in the platform's native static (NOT shared) format." OFF)
OPTION (BUILD_PROJECTM_STATIC "Build the projectM target library in the platform's native static (NOT shared) format." OFF)
SET(SOIL_SOURCES image_DXT.c image_helper.c SOIL.c stb_image_aug.c)
if (USE_NATIVE_GLEW)
ADD_DEFINITIONS(-DUSE_NATIVE_GLEW)
SET(GLEW_SOURCES glew.h glew.c)
SET(GLEW_LINK_TARGETS )
else(USE_NATIVE_GLEW)
SET(GLEW_SOURCES )
SET (GLEW_LINK_TARGETS GLEW)
endif(USE_NATIVE_GLEW)
SET(projectM_SOURCES projectM.cpp FBO.cpp InitCond.cpp
Expr.cpp PCM.cpp Parser.cpp Preset.cpp BeatDetect.cpp PerPixelEqn.cpp Param.cpp CustomWave.cpp CustomShape.cpp
Func.cpp Eval.cpp PerFrameEqn.cpp PerPointEqn.cpp fftsg.cpp KeyHandler.cpp
timer.cpp wipemalloc.cpp BuiltinFuncs.cpp BuiltinParams.cpp Renderer.cpp
PresetLoader.cpp PresetChooser.cpp PresetFrameIO.cpp PresetMerge.cpp PipelineContext.cpp
ConfigFile.cpp IdlePreset.cpp TextureManager.cpp TimeKeeper.cpp Filters.cpp Renderable.cpp Pipeline.cpp PerPixelMesh.cpp
MilkdropWaveform.cpp Waveform.cpp VideoEcho.cpp Shader.cpp PerlinNoise.cpp UserTexture.cpp ShaderEngine.cpp MilkdropPreset.cpp MilkdropPresetFactory.cpp NativePresetFactory.cpp PresetFactory.cpp PresetFactoryManager.cpp ${GLEW_SOURCES})
if (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES})
ADD_DEFINITIONS(-DUSE_DEVIL)
SET (IMAGE_LINK_TARGETS IL ILU ILUT)
else (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES} ${SOIL_SOURCES})
SET (IMAGE_LINK_TARGETS )
endif (USE_DEVIL)
if (USE_CG)
ADD_DEFINITIONS(-DUSE_CG)
SET (CG_LINK_TARGETS Cg CgGL)
else (USE_CG)
SET (CG_LINK_TARGETS)
endif(USE_CG)
if(USE_GLES1)
ADD_DEFINITIONS(-DUSE_GLES1)
endif(USE_GLES1)
if(USE_FBO)
ADD_DEFINITIONS(-DUSE_FBO)
endif(USE_FBO)
if (BUILD_PROJECTM_STATIC)
ADD_LIBRARY(projectM STATIC ${projectM_SOURCES})
else(BUILD_PROJECTM_STATIC)
ADD_LIBRARY(projectM SHARED ${projectM_SOURCES})
endif(BUILD_PROJECTM_STATIC)
SET_TARGET_PROPERTIES(projectM PROPERTIES VERSION 2.00 SOVERSION 2)
if (APPLE)
ADD_DEFINITIONS(-DMACOS -DSTBI_NO_DDS -DUSE_THREADS)
set(RESOURCE_PREFIX "Resources")
else (APPLE)
if (WIN32)
set (RESOURCE_PREFIX "Resources")
ADD_DEFINITIONS(-DWIN32 -DSTBI_NO_DDS -DUSE_THREADS)
else(WIN32)
set (RESOURCE_PREFIX "share/projectM")
ADD_DEFINITIONS(-DLINUX -DSTBI_NO_DDS -DUSE_THREADS)
endif(WIN32)
endif(APPLE)
ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
FIND_PACKAGE(OpenGL)
INCLUDE(FindPkgConfig.cmake)
pkg_search_module (FTGL ftgl)
if (FTGL_FOUND)
OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" ON)
else (FTGL_FOUND)
OPTION(USE_FTGL "Use FTGL for on-screen fonts (Warning: NOT found on your system! Turning this on will probably bust the compilation.)" OFF)
endif(FTGL_FOUND)
#set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH};/opt/local/include;/Developer/SDKs/MACOSX10.5.sdk/usr/X11/include)
#set(CMAKE_LIBRARY_PATH /opt/local/lib;/Developer/SDKs/MACOSX10.5.sdk;/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/)
IF(USE_FTGL)
if (FTGL_FOUND)
MESSAGE(STATUS "[projectM] FTGL font support was detected and enabled.")
else (FTGL_FOUND)
MESSAGE(STATUS
"[projectM] Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
endif (FTGL_FOUND)
ADD_DEFINITIONS(-DUSE_FTGL)
set (FTGL_INCUDE_DIRS ${FTGL_INCLUDE_DIRS} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR})
set (FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} )
set (FTGL_LINK_TARGETS ftgl freetype)
ELSE (USE_FTGL)
IF (FTGL_FOUND)
MESSAGE(STATUS "[projectM] Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true")
ELSE (FTGL_FOUND)
MESSAGE(STATUS "[projectM] Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
ENDIF(FTGL_FOUND)
# todo: change this because its obscure and probably not being used
set (FTGL_INCLUDE_DIRS "/opt/local/include")
set (FTGL_LINK_DIRS )
set (FTGL_LINK_TARGETS )
ENDIF(USE_FTGL)
IF(USE_OPENMP)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp ")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp ")
ENDIF(USE_OPENMP)
INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIRS})
LINK_DIRECTORIES(${FTGL_LINK_DIRS} "./")
if(BUILD_PROJECTM_STATIC)
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS}
${CG_LINK_TARGETS})
else(BUILD_PROJECTM_STATIC)
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS}
${CG_LINK_TARGETS})
endif(BUILD_PROJECTM_STATIC)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc" @ONLY)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.inp.in" "${CMAKE_CURRENT_SOURCE_DIR}/config.inp" @ONLY)
FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga")
INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets)
FILE(GLOB fonts "fonts/*.ttf")
INSTALL(FILES ${fonts} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/fonts)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/projectM.cg ${CMAKE_CURRENT_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM)
INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PresetFrameIO.hpp PCM.hpp DESTINATION include/libprojectM)
INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX})

View File

@ -0,0 +1,161 @@
PROJECT(projectM)
cmake_minimum_required(VERSION 2.4.0)
OPTION (USE_DEVIL "Use devIL for image loading rather than the builtin SOIL library" OFF)
OPTION (USE_FBO "Use Framebuffer Objects for increased rendering quality. Disable this for OpenGL ES 1.x or if you are experiencing problems on older or poorly supported hardware." ON)
OPTION (USE_GLES1 "Use OpenGL ES 1.x" OFF)
OPTION (USE_OPENMP "Use OpenMP and OMPTL for multi-core paralellization" ON)
OPTION (USE_NATIVE_GLEW "Use projectM's native implemention of GLEW." OFF)
OPTION (USE_CG "Use Cg for Pixel Shader support" OFF)
#OPTION (FTGL_STATIC "Build the projectM target library in the platform's native static (NOT shared) format." OFF)
OPTION (BUILD_PROJECTM_STATIC "Build the projectM target library in the platform's native static (NOT shared) format." OFF)
SET(SOIL_SOURCES image_DXT.c image_helper.c SOIL.c stb_image_aug.c)
if (USE_NATIVE_GLEW)
ADD_DEFINITIONS(-DUSE_NATIVE_GLEW)
SET(GLEW_SOURCES glew.h glew.c)
SET(GLEW_LINK_TARGETS )
else(USE_NATIVE_GLEW)
SET(GLEW_SOURCES )
SET (GLEW_LINK_TARGETS GLEW)
endif(USE_NATIVE_GLEW)
SET(projectM_SOURCES projectM.cpp FBO.cpp InitCond.cpp
Expr.cpp PCM.cpp Parser.cpp Preset.cpp BeatDetect.cpp PerPixelEqn.cpp Param.cpp CustomWave.cpp CustomShape.cpp
Func.cpp Eval.cpp PerFrameEqn.cpp PerPointEqn.cpp fftsg.cpp KeyHandler.cpp
timer.cpp wipemalloc.cpp BuiltinFuncs.cpp BuiltinParams.cpp Renderer.cpp
PresetLoader.cpp PresetChooser.cpp PresetFrameIO.cpp PresetMerge.cpp PipelineContext.cpp
ConfigFile.cpp IdlePreset.cpp TextureManager.cpp TimeKeeper.cpp Filters.cpp Renderable.cpp Pipeline.cpp PerPixelMesh.cpp
MilkdropWaveform.cpp Waveform.cpp VideoEcho.cpp Shader.cpp PerlinNoise.cpp UserTexture.cpp ShaderEngine.cpp MilkdropPreset.cpp MilkdropPresetFactory.cpp NativePresetFactory.cpp PresetFactory.cpp PresetFactoryManager.cpp ${GLEW_SOURCES})
if (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES})
ADD_DEFINITIONS(-DUSE_DEVIL)
SET (IMAGE_LINK_TARGETS IL ILU ILUT)
else (USE_DEVIL)
SET (projectM_SOURCES ${projectM_SOURCES} ${SOIL_SOURCES})
SET (IMAGE_LINK_TARGETS )
endif (USE_DEVIL)
if (USE_CG)
ADD_DEFINITIONS(-DUSE_CG)
SET (CG_LINK_TARGETS Cg CgGL)
else (USE_CG)
SET (CG_LINK_TARGETS)
endif(USE_CG)
if(USE_GLES1)
ADD_DEFINITIONS(-DUSE_GLES1)
endif(USE_GLES1)
if(USE_FBO)
ADD_DEFINITIONS(-DUSE_FBO)
endif(USE_FBO)
if (BUILD_PROJECTM_STATIC)
ADD_LIBRARY(projectM STATIC ${projectM_SOURCES})
else(BUILD_PROJECTM_STATIC)
ADD_LIBRARY(projectM SHARED ${projectM_SOURCES})
endif(BUILD_PROJECTM_STATIC)
SET_TARGET_PROPERTIES(projectM PROPERTIES VERSION 2.00 SOVERSION 2)
if (APPLE)
ADD_DEFINITIONS(-DMACOS -DSTBI_NO_DDS -DUSE_THREADS)
set(RESOURCE_PREFIX "Resources")
else (APPLE)
if (WIN32)
set (RESOURCE_PREFIX "Resources")
ADD_DEFINITIONS(-DWIN32 -DSTBI_NO_DDS -DUSE_THREADS)
else(WIN32)
set (RESOURCE_PREFIX "share/projectM")
ADD_DEFINITIONS(-DLINUX -DSTBI_NO_DDS -DUSE_THREADS)
endif(WIN32)
endif(APPLE)
ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
FIND_PACKAGE(OpenGL)
INCLUDE(FindPkgConfig.cmake)
pkg_search_module (FTGL ftgl)
if (FTGL_FOUND)
OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" ON)
else (FTGL_FOUND)
OPTION(USE_FTGL "Use FTGL for on-screen fonts (Warning: NOT found on your system! Turning this on will probably bust the compilation.)" OFF)
endif(FTGL_FOUND)
#set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH};/opt/local/include;/Developer/SDKs/MACOSX10.5.sdk/usr/X11/include)
#set(CMAKE_LIBRARY_PATH /opt/local/lib;/Developer/SDKs/MACOSX10.5.sdk;/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/)
IF(USE_FTGL)
if (FTGL_FOUND)
MESSAGE(STATUS "[projectM] FTGL font support was detected and enabled.")
else (FTGL_FOUND)
MESSAGE(STATUS
"[projectM] Warning! FTGL has been enabled but not detected. Your compilation will probably break. Turn off FTGL support by setting USE_FTGL to false, or visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
endif (FTGL_FOUND)
ADD_DEFINITIONS(-DUSE_FTGL)
set (FTGL_INCUDE_DIRS ${FTGL_INCLUDE_DIRS} ${CMAKE_INCLUDE_PATH} ${OPENGL_INCLUDE_DIR})
set (FTGL_LINK_DIRS ${FTGL_LIBRARY_DIRS} )
set (FTGL_LINK_TARGETS ftgl freetype)
ELSE (USE_FTGL)
IF (FTGL_FOUND)
MESSAGE(STATUS "[projectM] Warning: FTGL font support was detected but NOT enabled. You can enable it by setting USE_FTGL=true")
ELSE (FTGL_FOUND)
MESSAGE(STATUS "[projectM] Warning: FTGL font support was not detected. Visit http://ftgl.wiki.sourceforge.net/ for help on installing FTGL.")
ENDIF(FTGL_FOUND)
# todo: change this because its obscure and probably not being used
set (FTGL_INCLUDE_DIRS "/opt/local/include")
set (FTGL_LINK_DIRS )
set (FTGL_LINK_TARGETS )
ENDIF(USE_FTGL)
IF(USE_OPENMP)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fopenmp ")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp ")
ENDIF(USE_OPENMP)
INCLUDE_DIRECTORIES(${FTGL_INCLUDE_DIRS})
LINK_DIRECTORIES(${FTGL_LINK_DIRS} "./")
if(BUILD_PROJECTM_STATIC)
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS}
${CG_LINK_TARGETS})
else(BUILD_PROJECTM_STATIC)
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} m ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS}
${CG_LINK_TARGETS})
endif(BUILD_PROJECTM_STATIC)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc.in" "${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc" @ONLY)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/config.inp.in" "${CMAKE_CURRENT_SOURCE_DIR}/config.inp" @ONLY)
FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga")
INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets)
FILE(GLOB fonts "fonts/*.ttf")
INSTALL(FILES ${fonts} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/fonts)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/projectM.cg ${CMAKE_CURRENT_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM)
INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PresetFrameIO.hpp PCM.hpp DESTINATION include/libprojectM)
INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX})