X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=CMakeLists.txt;h=1a17e52561f4cc48d5a63884e46bd447f3cfeb59;hb=b0d8d53764f38b97857f47af1ee3653ac4a8ed8e;hp=700e9f49debf96fdbb681c44f12c269821405d32;hpb=d8d295024cace407fc60127f70f3b92c50cbeb3f;p=lugaru.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 700e9f4..1a17e52 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,11 +13,11 @@ endif(NOT CMAKE_BUILD_TYPE) if(NOT LUGARU_INSTALL_PREFIX) if(WIN32) - set(LUGARU_INSTALL_PREFIX C:\Lugaru CACHE PATH + set(LUGARU_INSTALL_PREFIX "C:/Lugaru" CACHE PATH "LUGARU_INSTALL_PREFIX: Install path prefix, prepended onto install directories." FORCE) else(WIN32) - set(LUGARU_INSTALL_PREFIX /usr/local/lugaru CACHE PATH + set(LUGARU_INSTALL_PREFIX "/usr/local/lugaru" CACHE PATH "CMAKE_INSTALL_PREFIX: Install path prefix, prepended onto install directories." FORCE) endif(WIN32) @@ -61,9 +61,15 @@ set(LUGARU_SRCS ${SRCDIR}/OpenGL_Windows.cpp ${SRCDIR}/openal_wrapper.cpp ${SRCDIR}/WinInput.cpp - ${SRCDIR}/MacCompatibility.cpp ) +if(UNIX) + set(LUGARU_SRCS + ${LUGARU_SRCS} + ${SRCDIR}/MacCompatibility.cpp + ) +endif(UNIX) + set(LUGARU_H ${SRCDIR}/Constants.h ${SRCDIR}/Frustum.h @@ -88,10 +94,7 @@ set(LUGARU_H ${SRCDIR}/WinInput.h ${SRCDIR}/alstubs.h ${SRCDIR}/binio.h - ${SRCDIR}/fmod.h - ${SRCDIR}/fmod_errors.h - ${SRCDIR}/fmod_header.h - ${SRCDIR}/fmoddyn.h + ${SRCDIR}/openal_wrapper.h ${SRCDIR}/gamegl.h ${SRCDIR}/glstubs.h ${SRCDIR}/md5.h @@ -106,19 +109,19 @@ if(WIN32) if(CMAKE_CROSSCOMPILING) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj COMMAND i686-pc-mingw32-windres - -I${CMAKE_CURRENT_SOURCE_DIR}/res + -I${SRCDIR}/res -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj - -i${CMAKE_CURRENT_SOURCE_DIR}/res/lugaru.rc - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/lugaru.rc + -i${SRCDIR}/res/Lugaru.rc + DEPENDS ${SRCDIR}/res/Lugaru.rc ) endif(CMAKE_CROSSCOMPILING) if(NOT CMAKE_CROSSCOMPILING) ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj COMMAND windres - -I${CMAKE_CURRENT_SOURCE_DIR}/res + -I${SRCDIR}/res -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj - -i${CMAKE_CURRENT_SOURCE_DIR}/res/lugaru.rc - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/res/lugaru.rc + -i${SRCDIR}/res/Lugaru.rc + DEPENDS ${SRCDIR}/res/Lugaru.rc ) endif(NOT CMAKE_CROSSCOMPILING) @@ -143,14 +146,46 @@ endif (APPLE) find_package(OpenGL REQUIRED) # force this include dir no matter what, so we get sane headers. -set(OPENGL_INCLUDE_DIR "${DEPDIR}/OpenGL") +include_directories("${DEPDIR}/OpenGL") + +option (LUGARU_FORCE_INTERNAL_OPENAL "Force internal libOpenAL, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_OPENAL) + find_package(OpenAL REQUIRED) +endif (NOT LUGARU_FORCE_INTERNAL_OPENAL) -find_package(OpenAL REQUIRED) # !!! FIXME: package a .dll for Windows? +if (NOT OPENAL_FOUND) + message(STATUS "Using internal copy of OpenAL") + set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} OpenAL") + set(OPENALDIR "${DEPDIR}/OpenAL") + set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include/AL") + set(OPENAL_LIBRARY "") -find_package(SDL) -if (NOT SDL) + if (WINDOWS) + set(LUGARU_HAS_INTERNAL_OPENAL True) +# if (MSVC) # !!! FIXME: package MSVC .dll and .lib for Windows? +# set(OPENAL_LIBRARY +# ${OPENALDIR}/lib/win32/msvc/OpenAL32.lib +# ) +# endif (MSVC) + if (MINGW) + set(OPENAL_LIBRARY + ${OPENALDIR}/lib/win32/mingw/libOpenAL32.dll.a + ) + endif (MINGW) + endif(WINDOWS) + + if (NOT LUGARU_HAS_INTERNAL_OPENAL) + message(ERROR "We don't have a prebuilt OpenAL for this platform.") + endif (NOT LUGARU_HAS_INTERNAL_OPENAL) +endif (NOT OPENAL_FOUND) + +option (LUGARU_FORCE_INTERNAL_SDL "Force internal libSDL, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_SDL) + find_package(SDL) +endif (NOT LUGARU_FORCE_INTERNAL_SDL) +if (NOT SDL_FOUND) + message(STATUS "Using internal copy of SDL") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} SDL") - message(STATUS "SDL not found, using internal copy") set(SDLDIR "${DEPDIR}/SDL12") set(SDL_INCLUDE_DIR "${SDLDIR}/include") set(SDL_LIBRARY "") @@ -164,21 +199,32 @@ if (NOT SDL) if (WINDOWS) set(LUGARU_HAS_INTERNAL_SDL True) - set(SDL_LIBRARY - ${SDLDIR}/lib/win32/SDL.lib - ${SDLDIR}/lib/win32/SDLmain.lib - ) + if (MSVC) + set(SDL_LIBRARY + ${SDLDIR}/lib/win32/msvc/SDL.lib + ${SDLDIR}/lib/win32/msvc/SDLmain.lib + ) + endif (MSVC) + if (MINGW) + set(SDL_LIBRARY + ${SDLDIR}/lib/win32/mingw/libSDL.dll.a + ${SDLDIR}/lib/win32/mingw/libSDLmain.a + ) + endif (MINGW) endif (WINDOWS) if (NOT LUGARU_HAS_INTERNAL_SDL) message(ERROR "We don't have a prebuilt SDL for this platform.") endif (NOT LUGARU_HAS_INTERNAL_SDL) -endif (NOT SDL) - -find_package(PNG) -if (NOT PNG) +endif (NOT SDL_FOUND) + +option (LUGARU_FORCE_INTERNAL_PNG "Force internal libPNG, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_PNG) + find_package(PNG) +endif (NOT LUGARU_FORCE_INTERNAL_PNG) +if (NOT PNG_FOUND) + message(STATUS "Using internal copy of libpng") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} PNG") - message(STATUS "libpng not found, using internal copy") set(PNGDIR "${DEPDIR}/libpng") set(PNG_INCLUDE_DIR "${PNGDIR}") set(PNG_LIBRARY "") @@ -200,12 +246,15 @@ if (NOT PNG) ${PNGDIR}/pngwtran.c ${PNGDIR}/pngwutil.c ) -endif (NOT PNG) - -find_package(JPEG) -if (NOT JPEG) +endif (NOT PNG_FOUND) + +option (LUGARU_FORCE_INTERNAL_JPEG "Force internal libJPEG, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_JPEG) + find_package(JPEG) +endif (NOT LUGARU_FORCE_INTERNAL_JPEG) +if (NOT JPEG_FOUND) + message(STATUS "Using internal copy of libjpeg") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} JPEG") - message(STATUS "libjpeg not found, using internal copy") set(JPEGDIR "${DEPDIR}/libjpeg") set(JPEG_INCLUDE_DIR "${JPEGDIR}") set(JPEG_LIBRARY "") @@ -257,12 +306,15 @@ if (NOT JPEG) ${JPEGDIR}/jdarith.c ${JPEGDIR}/jaricom.c ) -endif (NOT JPEG) - -find_package(ZLIB) -if (NOT ZLIB) +endif (NOT JPEG_FOUND) + +option (LUGARU_FORCE_INTERNAL_ZLIB "Force internal zlib, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_ZLIB) + find_package(ZLIB) +endif (NOT LUGARU_FORCE_INTERNAL_ZLIB) +if (NOT ZLIB_FOUND) + message(STATUS "Using internal copy of zlib") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} ZLIB") - message(STATUS "zlib not found, using internal copy") set(ZLIBDIR "${DEPDIR}/zlib") set(ZLIB_INCLUDE_DIR "${ZLIBDIR}") set(ZLIB_LIBRARIES "") @@ -280,12 +332,15 @@ if (NOT ZLIB) ${ZLIBDIR}/uncompr.c ${ZLIBDIR}/zutil.c ) -endif (NOT ZLIB) - -find_package(GLU) -if (NOT GLU) +endif (NOT ZLIB_FOUND) + +option (LUGARU_FORCE_INTERNAL_GLU "Force internal libGLU, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_GLU) + find_package(GLU) +endif (NOT LUGARU_FORCE_INTERNAL_GLU) +if (NOT GLU_FOUND) + message(STATUS "Using internal copy of libGLU") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} GLU") - message(STATUS "GLU not found, using internal copy") set(GLUDIR "${DEPDIR}/GLU") set(GLU_INCLUDE_DIR "${GLUDIR}") set(GLU_LIBRARY "") @@ -304,12 +359,15 @@ if (NOT GLU) ${GLUDIR}/tessmono.c ${GLUDIR}/util.c ) -endif (NOT GLU) - -find_package(OggVorbis) -if (NOT OggVorbis) +endif (NOT GLU_FOUND) + +option (LUGARU_FORCE_INTERNAL_VORBIS "Force internal Vorbis, even if there's a system version" False) +if (NOT LUGARU_FORCE_INTERNAL_VORBIS) + find_package(OggVorbis) +endif (NOT LUGARU_FORCE_INTERNAL_VORBIS) +if (NOT OggVorbis_FOUND) + message(STATUS "Using internal copy of Ogg Vorbis") set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} OggVorbis") - message(STATUS "Ogg Vorbis not found, using internal copy") set(OGGDIR "${DEPDIR}/libogg") set(OGG_INCLUDE_DIR "${OGGDIR}/include") set(OGG_LIBRARY "") @@ -341,7 +399,7 @@ if (NOT OggVorbis) ${VORBISDIR}/lib/vorbisfile.c ${VORBISDIR}/lib/window.c ) -endif (NOT OggVorbis) +endif (NOT OggVorbis_FOUND) include_directories( ${OPENAL_INCLUDE_DIR} @@ -375,9 +433,17 @@ endif(WIN32) # Install target if(WIN32) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/Source/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX}) + if(MSVC) + install(FILES ${SDLDIR}/lib/win32/msvc/SDL.dll DESTINATION ${CMAKE_INSTALL_PREFIX}) + #install(FILES ${OPENALDIR}/lib/win32/msvc/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX}) # FIXME: Add MSVC OpenAL library! + endif(MSVC) + if(MINGW) + install(FILES ${SDLDIR}/lib/win32/mingw/SDL.dll DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(FILES ${OPENALDIR}/lib/win32/mingw/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif(MINGW) else(WIN32) - install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/Source/lugaru DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru DESTINATION ${CMAKE_INSTALL_PREFIX}) endif(WIN32) install(DIRECTORY ${CMAKE_SOURCE_DIR}/Data DESTINATION ${CMAKE_INSTALL_PREFIX})