static linking support to cmakelists.

very old mac changes finally committed..pray.


git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@983 6778bc44-b910-0410-a7a0-be141de4315d
This commit is contained in:
w1z7ard
2008-05-03 03:10:58 +00:00
parent 998d8102c1
commit 65b60ccd39
9 changed files with 2069 additions and 329 deletions

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,11 @@ OPTION (USE_FBO "Use Framebuffer Objects for increased rendering quality. Disab
OPTION (USE_GLES1 "Use OpenGL ES 1.x" 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)
SET(projectM_SOURCES projectM.cpp FBO.cpp InitCond.cpp
@ -32,7 +37,12 @@ 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)
@ -62,7 +72,6 @@ endif(FTGL_FOUND)
TARGET_LINK_LIBRARIES(projectM GLEW ${OPENGL_LIBRARIES} m ${IMAGE_LOADING_LIBS})
IF(USE_FTGL)
if (FTGL_FOUND)
MESSAGE(STATUS "[projectM] FTGL font support was detected and enabled.")

View File

@ -1,6 +1,7 @@
PROJECT(projectM-jack)
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)
@ -77,7 +78,13 @@ LINK_DIRECTORIES(${PROJECTM_LINK} ${JACK_LDFLAGS})
ADD_EXECUTABLE(projectM-jack ${projectM_jack_SRCS} ${projectM_jack_MOC_SRCS})
TARGET_LINK_LIBRARIES(projectM-jack projectM-qt projectM jack ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTCORE_LIBRARIES} ${QT_LIBRARIES})
if (BUILD_PROJECTM_JACK_STATIC)
SET(PACKAGED_LIBRARIES ${PROJECTM_ROOT_BINARY_DIR}/projectM-engine/libprojectM.a ${PROJECTM_ROOT_BINARY_DIR}/projectM-qt/libprojectM-qt.a)
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})
INSTALL(TARGETS projectM-jack DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
install(FILES "projectM-jack.desktop" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)

View File

@ -12,6 +12,7 @@ else(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
pkg_search_module(LIBPROJECTM REQUIRED libprojectM)
endif(${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
OPTION(BUILD_PROJECTM_QT_STATIC "Build a static library of projectM-qt rather than the usual shared library format" OFF)
find_package(Qt4 REQUIRED) # find and setup Qt4 for this project
include(${QT_USE_FILE})
@ -36,7 +37,7 @@ ADD_DEFINITIONS(-DLINUX -DPROJECTM_PREFIX='"${PROJECTM_PREFIX}"')
ADD_DEFINITIONS(${QT_DEFINITIONS})
ADD_DEFINITIONS(-DQT_PLUGIN)
ADD_DEFINITIONS(-DQT_NO_DEBUG)
ADD_DEFINITIONS(-DQT_SHARED)
ADD_DEFINITIONS(-DQT_STATIC)
# the variable "projectM-qt_SRCS" contains all .cpp files of this project
set(projectM-qt_SRCS
@ -93,7 +94,11 @@ qt4_wrap_ui(projectM-qt_UIS_H ${projectM-qt_UIS})
# After this call, foo_MOC_SRCS = moc_Class1.cxx moc_Class2.cxx moc_Class3.cxx.
qt4_wrap_cpp(projectM-qt_MOC_SRCS ${projectM-qt_MOC_HDRS})
if (BUILD_PROJECTM_QT_STATIC)
ADD_LIBRARY(projectM-qt STATIC ${projectM-qt_SRCS} ${projectM-qt_RC_SRCS} ${projectM-qt_MOC_SRCS} ${projectM-qt_UIS_H})
else(BUILD_PROJECTM_QT_STATIC)
ADD_LIBRARY(projectM-qt SHARED ${projectM-qt_SRCS} ${projectM-qt_RC_SRCS} ${projectM-qt_MOC_SRCS} ${projectM-qt_UIS_H})
endif(BUILD_PROJECTM_QT_STATIC)
SET_TARGET_PROPERTIES(projectM-qt PROPERTIES VERSION 1.10 SOVERSION 1)

View File

@ -23,7 +23,7 @@ ADD_DEFINITIONS(-DLINUX)
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)
-engine)
elseif (${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
set(PROJECTM_INCLUDE ${LIBPROJECTM_INCLUDEDIR}/libprojectM)
set(PROJECTM_LINK ${LIBPROJECTM_LDFLAGS})
@ -32,8 +32,8 @@ endif (${CMAKE_PROJECT_NAME} MATCHES "PROJECTM_ROOT")
INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${SDL_INCLUDE_DIR} ${GTK_INCLUDE_DIR})
LINK_DIRECTORIES(${PROJECTM_LINK})
TARGET_LINK_LIBRARIES(projectM-test projectM ${SDL_LIBRARY} ${GTK_LIBRARIES})
TARGET_LINK_LIBRARIES(projectM-test-memleak projectM ${SDL_LIBRARY} ${GTK_LIBRARIES})
TARGET_LINK_LIBRARIES(projectM-test-texture projectM ${SDL_LIBRARY} ${GTK_LIBRARIES})
TARGET_LINK_LIBRARIES(projectM-test projectM ${SDL_LIBRARY})
TARGET_LINK_LIBRARIES(projectM-test-memleak projectM ${SDL_LIBRARY} )
TARGET_LINK_LIBRARIES(projectM-test-texture projectM ${SDL_LIBRARY} )
INSTALL(TARGETS projectM-test projectM-test-texture DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )

View File

@ -12,6 +12,7 @@
#include <string>
#include "getConfigFilename.h"
#include <fcntl.h>
#include <sys/stat.h>
// get the full pathname of a configfile
std::string getConfigFilename()

View File

@ -23,6 +23,7 @@
#include <stdlib.h>
#include <math.h>
#include <SDL/SDL.h>
#include <sys/stat.h>
#include <projectM.hpp>
#include "sdltoprojectM.h"

View File

@ -21,23 +21,63 @@
#include "video_init.h"
#include <projectM.hpp>
#include "sdltoprojectM.h"
//#include "sdltoprojectM.h"
#include "ConfigFile.h"
#include "getConfigFilename.h"
//FIXME: these don't have to be global
projectM *globalPM = NULL;
//projectM *globalPM = NULL;
int wvw, wvh, fvw, fvh;
bool fullscreen;
#ifdef LINUX
#include <SDL.h>
#endif
#ifdef __APPLE__
#include <SDL.h>
#endif
void renderLoop();
int main(int argc, char **argv)
{
/*
// fix `fullscreen quit kills mouse` issue.
atexit(SDL_Quit);
std::string config_filename = getConfigFilename();
ConfigFile config(config_filename);
// window dimensions from configfile
wvw = config.read<int>("Window Width", 512);
wvh = config.read<int>("Window Height", 512);
fullscreen = config.read("Fullscreen", true);
init_display(wvw, wvh, &fvw, &fvh, fullscreen);
SDL_WM_SetCaption(PROJECTM_TITLE, NULL);
globalPM = new projectM(config_filename);
// if started fullscreen, give PM new viewport dimensions
if (fullscreen)
globalPM->projectM_resetGL(fvw, fvh);
renderLoop();
// not reached
*/
return 1;
}
void renderLoop()
{
while (1)
{
projectMEvent evt;
projectMKeycode key;
projectMModifier mod;
// projectMEvent evt;
// projectMKeycode key;
// projectMModifier mod;
#if 0
/** Process SDL events */
SDL_Event event;
while (SDL_PollEvent(&event))
@ -90,38 +130,11 @@ void renderLoop()
globalPM->key_handler(evt, key, mod);
break;
}
}
globalPM->renderFrame();
SDL_GL_SwapBuffers();
}
#endif
//globalPM->renderFrame();
// SDL_GL_SwapBuffers();
}
}
int main(int argc, char **argv)
{
// fix `fullscreen quit kills mouse` issue.
atexit(SDL_Quit);
std::string config_filename = getConfigFilename();
ConfigFile config(config_filename);
// window dimensions from configfile
wvw = config.read<int>("Window Width", 512);
wvh = config.read<int>("Window Height", 512);
fullscreen = config.read("Fullscreen", true);
init_display(wvw, wvh, &fvw, &fvh, fullscreen);
SDL_WM_SetCaption(PROJECTM_TITLE, NULL);
globalPM = new projectM(config_filename);
// if started fullscreen, give PM new viewport dimensions
if (fullscreen)
globalPM->projectM_resetGL(fvw, fvh);
renderLoop();
// not reached
return 1;
}

View File

@ -28,47 +28,47 @@
#include <SDL/SDL.h>
#endif
projectMEvent sdl2pmEvent( SDL_Event event ) { \
inline projectMEvent sdl2pmEvent( SDL_Event event ) {
switch ( event.type ) { \
switch ( event.type ) {
case SDL_VIDEORESIZE:
return PROJECTM_VIDEORESIZE; \
case SDL_KEYUP: \
return PROJECTM_KEYUP; \
case SDL_KEYDOWN: \
return PROJECTM_KEYDOWN; \
return PROJECTM_VIDEORESIZE;
case SDL_KEYUP:
return PROJECTM_KEYUP;
case SDL_KEYDOWN:
return PROJECTM_KEYDOWN;
default:
return PROJECTM_KEYUP; \
} \
} \
return PROJECTM_KEYUP;
}
}
projectMKeycode sdl2pmKeycode( SDLKey keysym ) { \
switch ( keysym ) { \
case SDLK_F1: \
return PROJECTM_K_F1; \
case SDLK_F2: \
return PROJECTM_K_F2; \
case SDLK_F3: \
return PROJECTM_K_F3; \
case SDLK_F4: \
return PROJECTM_K_F4; \
case SDLK_F5: \
return PROJECTM_K_F5; \
case SDLK_F6: \
return PROJECTM_K_F6; \
case SDLK_F7: \
return PROJECTM_K_F7; \
case SDLK_F8: \
return PROJECTM_K_F8; \
case SDLK_F9: \
return PROJECTM_K_F9; \
case SDLK_F10: \
return PROJECTM_K_F10; \
case SDLK_F11: \
return PROJECTM_K_F11; \
case SDLK_F12: \
return PROJECTM_K_F12; \
case SDLK_ESCAPE: \
projectMKeycode sdl2pmKeycode( SDLKey keysym ) {
switch ( keysym ) {
case SDLK_F1:
return PROJECTM_K_F1;
case SDLK_F2:
return PROJECTM_K_F2;
case SDLK_F3:
return PROJECTM_K_F3;
case SDLK_F4:
return PROJECTM_K_F4;
case SDLK_F5:
return PROJECTM_K_F5;
case SDLK_F6:
return PROJECTM_K_F6;
case SDLK_F7:
return PROJECTM_K_F7;
case SDLK_F8:
return PROJECTM_K_F8;
case SDLK_F9:
return PROJECTM_K_F9;
case SDLK_F10:
return PROJECTM_K_F10;
case SDLK_F11:
return PROJECTM_K_F11;
case SDLK_F12:
return PROJECTM_K_F12;
case SDLK_ESCAPE:
return PROJECTM_K_ESCAPE;
case SDLK_a:
return PROJECTM_K_a;
@ -137,13 +137,13 @@ projectMKeycode sdl2pmKeycode( SDLKey keysym ) { \
case SDLK_PAGEDOWN:
return PROJECTM_K_PAGEDOWN;
default: \
return PROJECTM_K_NONE; \
} \
} \
default:
return PROJECTM_K_NONE;
}
}
projectMModifier sdl2pmModifier( SDLMod mod ) { \
return PROJECTM_KMOD_LSHIFT; \
} \
inline projectMModifier sdl2pmModifier( SDLMod mod ) {
return PROJECTM_KMOD_LSHIFT;
}
#endif /** _SDLTOPROJECTM_H */