]> git.jsancho.org Git - lugaru.git/blobdiff - CMakeLists.txt
CI: Add missing make install
[lugaru.git] / CMakeLists.txt
index c7bc8f42a10d1e5475a88c51b33d88c6cc9ca52c..96d95b65ae8764c3f986ee19be4e57fb6684773c 100644 (file)
@@ -5,11 +5,9 @@ cmake_minimum_required(VERSION 2.6)
 set(SRCDIR "${CMAKE_CURRENT_SOURCE_DIR}/Source")
 set(DEPDIR "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies")
 
-if(NOT CMAKE_BUILD_TYPE)
-  set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
-      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel"
-      FORCE)
-endif(NOT CMAKE_BUILD_TYPE)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 --std=c++11")
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -pg --std=c++11")
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall -O2 -std=c++11")
 
 if(NOT LUGARU_INSTALL_PREFIX)
   if(WIN32)
@@ -30,68 +28,92 @@ if(MINGW)
        set(OPENGL_glu_LIBRARY "-lglu32" CACHE STRING "GLU library for Win32" FORCE)
 endif(MINGW)
 
+if(APPLE)
+       set(CMAKE_OSX_ARCHITECTURES "i386;x86_64;ppc" CACHE STRING "Build architectures for OSX")
+       set(CMAKE_OSX_DEPLOYMENT_TARGET "10.5" CACHE STRING
+               "Minimum OS X version to target for deployment (at runtime); newer APIs weak linked. Set to empty string for default value")
+       set(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk" CACHE PATH
+               "The product will be built against the headers and libraries located inside the indicated SDK.")
+endif(APPLE)
+
+if(APPLE)
+       # Save our sanity; Set all available libraries to internal by default
+       set(LUGARU_FORCE_INTERNAL_SDL True)
+       set(LUGARU_FORCE_INTERNAL_GLU True)
+       set(LUGARU_FORCE_INTERNAL_JPEG True)
+       set(LUGARU_FORCE_INTERNAL_PNG True)
+       set(LUGARU_FORCE_INTERNAL_VORBIS True)
+       set(LUGARU_FORCE_INTERNAL_ZLIB True)
+endif(APPLE)
+
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
 
 set(LUGARU_SRCS
        ${SRCDIR}/Frustum.cpp
+       ${SRCDIR}/Account.cpp
+       ${SRCDIR}/Game.cpp
        ${SRCDIR}/GameDraw.cpp
        ${SRCDIR}/GameInitDispose.cpp
        ${SRCDIR}/GameTick.cpp
        ${SRCDIR}/Globals.cpp
        ${SRCDIR}/Lights.cpp
+       ${SRCDIR}/Menu.cpp
        ${SRCDIR}/Models.cpp
        ${SRCDIR}/Objects.cpp
        ${SRCDIR}/pack.c
-       ${SRCDIR}/pack_private.c
        ${SRCDIR}/Person.cpp
        ${SRCDIR}/private.c
        ${SRCDIR}/Quaternions.cpp
-       ${SRCDIR}/Random.c
        ${SRCDIR}/Skeleton.cpp
        ${SRCDIR}/Skybox.cpp
-       ${SRCDIR}/Sprites.cpp
+       ${SRCDIR}/Sprite.cpp
        ${SRCDIR}/Terrain.cpp
+       ${SRCDIR}/Texture.cpp
        ${SRCDIR}/Text.cpp
        ${SRCDIR}/TGALoader.cpp
        ${SRCDIR}/unpack.c
-       ${SRCDIR}/unpack_private.c
        ${SRCDIR}/Weapons.cpp
        ${SRCDIR}/OpenGL_Windows.cpp
        ${SRCDIR}/openal_wrapper.cpp
-       ${SRCDIR}/WinInput.cpp
+       ${SRCDIR}/Input.cpp
+       ${SRCDIR}/Settings.cpp
+       ${SRCDIR}/Stereo.cpp
+       ${SRCDIR}/Animation.cpp
+       ${SRCDIR}/Sounds.cpp
+       ${SRCDIR}/Awards.cpp
 )
 
 set(LUGARU_H
-       ${SRCDIR}/Constants.h
        ${SRCDIR}/Frustum.h
+       ${SRCDIR}/Account.h
        ${SRCDIR}/Game.h
        ${SRCDIR}/Lights.h
-       ${SRCDIR}/LinkedList.h
+       ${SRCDIR}/Menu.h
        ${SRCDIR}/Models.h
        ${SRCDIR}/Objects.h
        ${SRCDIR}/Person.h
        ${SRCDIR}/PhysicsMath.h
-       ${SRCDIR}/Pointer.h
        ${SRCDIR}/Quaternions.h
        ${SRCDIR}/Random.h
        ${SRCDIR}/Skeleton.h
        ${SRCDIR}/Skybox.h
-       ${SRCDIR}/Sprites.h
+       ${SRCDIR}/Sprite.h
        ${SRCDIR}/TGALoader.h
        ${SRCDIR}/Terrain.h
+       ${SRCDIR}/Texture.h
        ${SRCDIR}/Text.h
        ${SRCDIR}/Weapons.h
-       ${SRCDIR}/WinInput.h
+       ${SRCDIR}/Input.h
        ${SRCDIR}/alstubs.h
        ${SRCDIR}/binio.h
        ${SRCDIR}/openal_wrapper.h
        ${SRCDIR}/gamegl.h
        ${SRCDIR}/glstubs.h
-       ${SRCDIR}/mmgr.h
-       ${SRCDIR}/nommgr.h
-       ${SRCDIR}/pack_private.h
        ${SRCDIR}/private.h
-       ${SRCDIR}/unpack_private.h
+       ${SRCDIR}/Settings.h
+       ${SRCDIR}/Stereo.h
+       ${SRCDIR}/Animation.h
+       ${SRCDIR}/Sounds.h
 )
 
 if(UNIX)
@@ -117,29 +139,29 @@ if(WIN32)
   if(CMAKE_CROSSCOMPILING)
     ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
                                                  COMMAND i686-pc-mingw32-windres
-                                                         -I${SRCDIR}/res
+                                                         -I${SRCDIR}/win-res
                                                          -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         -i${SRCDIR}/res/Lugaru.rc
-                                             DEPENDS ${SRCDIR}/res/Lugaru.rc
+                                                         -i${SRCDIR}/win-res/Lugaru.rc
+                                             DEPENDS ${SRCDIR}/win-res/Lugaru.rc
                                                  )
   endif(CMAKE_CROSSCOMPILING)
   if(NOT CMAKE_CROSSCOMPILING)
    if(MSVC)
     ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
                                                  COMMAND rc
-                                                         -I${SRCDIR}/res
+                                                         -I${SRCDIR}/win-res
                                                          -fo${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         ${SRCDIR}/res/Lugaru.rc
-                                             DEPENDS ${SRCDIR}/res/Lugaru.rc
+                                                         ${SRCDIR}/win-res/Lugaru.rc
+                                             DEPENDS ${SRCDIR}/win-res/Lugaru.rc
                                                  )
    endif(MSVC)
    if(MINGW)
     ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
                                                  COMMAND windres
-                                                         -I${SRCDIR}/res
+                                                         -I${SRCDIR}/win-res
                                                          -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         -i${SRCDIR}/res/Lugaru.rc
-                                             DEPENDS ${SRCDIR}/res/Lugaru.rc
+                                                         -i${SRCDIR}/win-res/Lugaru.rc
+                                             DEPENDS ${SRCDIR}/win-res/Lugaru.rc
                                                  )
    endif(MINGW)
   endif(NOT CMAKE_CROSSCOMPILING)
@@ -152,7 +174,7 @@ if(WIN32)
   set(LUGARU_H
        ${LUGARU_H}
        ${SRCDIR}/WinDefs.h
-       ${SRCDIR}/res/resource.h)
+       ${SRCDIR}/win-res/resource.h)
 endif(WIN32)
 
 if (APPLE)
@@ -161,11 +183,21 @@ endif (APPLE)
 
 # Deal with dependencies...
 find_package(OpenGL REQUIRED)
-# force this include dir no matter what, so we get sane headers.
-option (LUGARU_FORCE_INTERNAL_OPENGL "Force internal OpenGL headers, even if there's a system version" True)
-if (LUGARU_FORCE_INTERNAL_OPENGL)
+# force this include dir no matter what on Windows, so we get sane headers.
+if(NOT WIN32)
+       option (LUGARU_FORCE_INTERNAL_OPENGL "Force internal OpenGL headers, even if there's a system version" True)
+       if (LUGARU_FORCE_INTERNAL_OPENGL)
+               include_directories("${DEPDIR}/OpenGL")
+       endif (LUGARU_FORCE_INTERNAL_OPENGL)
+endif(NOT WIN32)
+
+if(WIN32)
        include_directories("${DEPDIR}/OpenGL")
-endif (LUGARU_FORCE_INTERNAL_OPENGL)
+endif(WIN32)
+
+if(MSVC) # More Visual Studio annoyances
+       include_directories("${DEPDIR}/msinttypes")
+endif(MSVC)
 
 option (LUGARU_FORCE_INTERNAL_OPENAL "Force internal libOpenAL, even if there's a system version" False)
 if (NOT LUGARU_FORCE_INTERNAL_OPENAL)
@@ -464,7 +496,7 @@ include_directories(
     ${CMAKE_SOURCE_DIR}/Source
 )
 
-set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL_LIBRARY} ${GLU_LIBRARY} ${OPENGL_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY} ${PLATFORM_LIBS})
+set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL_LIBRARY} ${OPENGL_glu_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY} ${PLATFORM_LIBS})
 
 
 if(WIN32)
@@ -482,6 +514,12 @@ else(WIN32)
 endif(WIN32)
 
 # Install target
+if(APPLE)
+       set(APPS_ROOT "${CMAKE_INSTALL_PREFIX}/Lugaru.app")
+       set(APPS_BIN "${APPS_ROOT}/Contents/MacOS")
+       set(APPS_DATA "${APPS_ROOT}/Contents/Resources")
+endif(APPLE)
+
 if(WIN32)
        install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX})
        if(MSVC80)
@@ -497,10 +535,24 @@ if(WIN32)
                install(FILES ${OPENALDIR}/lib/win32/mingw/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
        endif(MINGW)
 else(WIN32)
+       if(APPLE)
+               set(CMAKE_INSTALL_PREFIX "${APPS_BIN}")
+               install(FILES ${SRCDIR}/mac-res/lugaru.icns DESTINATION ${APPS_DATA})
+               install(FILES ${SRCDIR}/mac-res/Info.plist DESTINATION ${APPS_ROOT}/Contents)
+       endif(APPLE)
        install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru DESTINATION ${CMAKE_INSTALL_PREFIX})
+       if(APPLE AND LUGARU_HAS_INTERNAL_SDL)
+               install(FILES ${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib DESTINATION ${CMAKE_INSTALL_PREFIX})
+       endif(APPLE AND LUGARU_HAS_INTERNAL_SDL)
 endif(WIN32)
 
+if(NOT APPLE)
 install(DIRECTORY ${CMAKE_SOURCE_DIR}/Data DESTINATION ${CMAKE_INSTALL_PREFIX})
+endif(NOT APPLE)
+
+if(APPLE)
+install(DIRECTORY ${CMAKE_SOURCE_DIR}/Data DESTINATION ${APPS_ROOT})
+endif(APPLE)
 
 if (LUGARU_MISSING_DEPS)
     message(STATUS "Using our copy of these libs: ${LUGARU_MISSING_DEPS}")