]> git.jsancho.org Git - lugaru.git/blobdiff - CMakeLists.txt
CI: Drop legacy msvc2005 files, add AppVeyor
[lugaru.git] / CMakeLists.txt
index 766bd3768640f4d3152b7458b5168d6b8a442499..b3a72ae82d362e21bbef85556e7e065be5c0dccc 100644 (file)
@@ -1,15 +1,13 @@
 project(lugaru)
 
-cmake_minimum_required(VERSION 2.6)
+cmake_minimum_required(VERSION 3.5)
 
 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)
@@ -32,9 +30,9 @@ 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 
+       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 
+       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)
 
@@ -46,74 +44,77 @@ if(APPLE)
        set(LUGARU_FORCE_INTERNAL_PNG True)
        set(LUGARU_FORCE_INTERNAL_VORBIS True)
        set(LUGARU_FORCE_INTERNAL_ZLIB True)
+       set(LUGARU_FORCE_INTERNAL_OPENAL 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)
@@ -136,40 +137,13 @@ if(MSVC) # MSVC non-C99 support biting us hard
 endif(MSVC)
 
 if(WIN32)
-  if(CMAKE_CROSSCOMPILING)
-    ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                 COMMAND i686-pc-mingw32-windres
-                                                         -I${SRCDIR}/win-res
-                                                         -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         -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}/win-res
-                                                         -fo${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         ${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}/win-res
-                                                         -o ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
-                                                         -i${SRCDIR}/win-res/Lugaru.rc
-                                             DEPENDS ${SRCDIR}/win-res/Lugaru.rc
-                                                 )
-   endif(MINGW)
-  endif(NOT CMAKE_CROSSCOMPILING)
-
-  # !!! FIXME: get rid of this.
+  ENABLE_LANGUAGE(RC)
+
+  # !!! FIXME: get rid of WinDefs.{cpp,h}
   set(LUGARU_SRCS
        ${LUGARU_SRCS}
-       ${SRCDIR}/WinDefs.cpp)
+       ${SRCDIR}/WinDefs.cpp
+       ${SRCDIR}/win-res/Lugaru.rc)
 
   set(LUGARU_H
        ${LUGARU_H}
@@ -215,16 +189,11 @@ if (NOT OPENAL_FOUND OR LUGARU_FORCE_INTERNAL_OPENAL)
 
     if (WIN32)
         set(LUGARU_HAS_INTERNAL_OPENAL True)
-        if (MSVC80)
-            set(OPENAL_LIBRARY
-                ${OPENALDIR}/lib/win32/msvc2005/OpenAL32.lib
-            )
-        endif (MSVC80)
-        if (MSVC90)
+        if (MSVC)
             set(OPENAL_LIBRARY
                 ${OPENALDIR}/lib/win32/msvc2008/OpenAL32.lib
             )
-        endif (MSVC90)
+        endif (MSVC)
         if (MINGW)
             set(OPENAL_LIBRARY
                 ${OPENALDIR}/lib/win32/mingw/libOpenAL32.dll.a
@@ -260,18 +229,12 @@ if (NOT SDL_FOUND)
 
     if (WIN32)
         set(LUGARU_HAS_INTERNAL_SDL True)
-        if (MSVC80)
-          set(SDL_LIBRARY
-              ${SDLDIR}/lib/win32/msvc2005/SDLmain.lib
-              ${SDLDIR}/lib/win32/msvc2005/SDL.lib
-          )
-        endif (MSVC80)
-        if (MSVC90)
+        if (MSVC)
           set(SDL_LIBRARY
               ${SDLDIR}/lib/win32/msvc2008/SDLmain.lib
               ${SDLDIR}/lib/win32/msvc2008/SDL.lib
           )
-        endif (MSVC90)
+        endif (MSVC)
         if (MINGW)
           set(SDL_LIBRARY
               "mingw32"
@@ -496,19 +459,18 @@ 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)
-    add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H} lugaru_resource.obj)
-else(WIN32)
-    add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H})
-endif(WIN32)
+add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H})
 
 target_link_libraries(lugaru ${LUGARU_LIBS})
 
 if(WIN32)
        add_definitions(-DUSE_OPENAL=1 -DUSE_SDL=1 -DBinIO_STDINT_HEADER=<stdint.h>)
+       if(MINGW)
+               add_definitions(-DWIN32)
+       endif(MINGW)
 else(WIN32)
        add_definitions(-DPLATFORM_LINUX=1 -DPLATFORM_UNIX=1 -DUSE_OPENAL=1 -DUSE_SDL=1 -DBinIO_STDINT_HEADER=<stdint.h>)
 endif(WIN32)
@@ -522,14 +484,10 @@ endif(APPLE)
 
 if(WIN32)
        install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX})
-       if(MSVC80)
-               install(FILES ${SDLDIR}/lib/win32/msvc2005/SDL.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
-               install(FILES ${OPENALDIR}/lib/win32/msvc2005/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
-       endif(MSVC80)
-       if(MSVC90)
+       if(MSVC)
                install(FILES ${SDLDIR}/lib/win32/msvc2008/SDL.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
                install(FILES ${OPENALDIR}/lib/win32/msvc2008/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
-       endif(MSVC90)
+       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})