]> git.jsancho.org Git - lugaru.git/blobdiff - CMakeLists.txt
Fix error on forcing inclusion of OpenGL headers on Windows
[lugaru.git] / CMakeLists.txt
index 3908731de22acb3dc43b0db7d334bc3f0e8add7e..997b41b894d231bbd6307e77e181b30c0534f22c 100644 (file)
@@ -25,12 +25,10 @@ endif(NOT LUGARU_INSTALL_PREFIX)
 
 set(CMAKE_INSTALL_PREFIX "${LUGARU_INSTALL_PREFIX}" CACHE INTERNAL "Prefix prepended to install directories" FORCE)
 
-if(WIN32)
+if(MINGW)
        set(OPENGL_gl_LIBRARY "-lopengl32" CACHE STRING "OpenGL library for Win32" FORCE)
        set(OPENGL_glu_LIBRARY "-lglu32" CACHE STRING "GLU library for Win32" FORCE)
-endif(WIN32)
-
-
+endif(MINGW)
 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
 
@@ -63,20 +61,12 @@ set(LUGARU_SRCS
        ${SRCDIR}/WinInput.cpp
 )
 
-if(UNIX)
-       set(LUGARU_SRCS
-               ${LUGARU_SRCS}
-               ${SRCDIR}/MacCompatibility.cpp
-       )
-endif(UNIX)
-
 set(LUGARU_H
        ${SRCDIR}/Constants.h
        ${SRCDIR}/Frustum.h
        ${SRCDIR}/Game.h
        ${SRCDIR}/Lights.h
        ${SRCDIR}/LinkedList.h
-       ${SRCDIR}/MacCompatibility.h
        ${SRCDIR}/Models.h
        ${SRCDIR}/Objects.h
        ${SRCDIR}/Person.h
@@ -104,6 +94,25 @@ set(LUGARU_H
        ${SRCDIR}/unpack_private.h
 )
 
+if(UNIX)
+       set(LUGARU_SRCS
+               ${LUGARU_SRCS}
+               ${SRCDIR}/MacCompatibility.cpp
+       )
+       set(LUGARU_H
+               ${LUGARU_H}
+               ${SRCDIR}/MacCompatibility.h
+       )
+endif(UNIX)
+
+if(MSVC) # MSVC non-C99 support biting us hard
+       set(LUGARU_H
+               ${LUGARU_H}
+               ${DEPDIR}/msinttypes/stdint.h
+               ${DEPDIR}/msinttypes/inttypes.h
+       )
+endif(MSVC)
+
 if(WIN32)
   if(CMAKE_CROSSCOMPILING)
     ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
@@ -115,6 +124,16 @@ if(WIN32)
                                                  )
   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
+                                                         -fo${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
+                                                         ${SRCDIR}/res/Lugaru.rc
+                                             DEPENDS ${SRCDIR}/res/Lugaru.rc
+                                                 )
+   endif(MSVC)
+   if(MINGW)
     ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj
                                                  COMMAND windres
                                                          -I${SRCDIR}/res
@@ -122,6 +141,7 @@ if(WIN32)
                                                          -i${SRCDIR}/res/Lugaru.rc
                                              DEPENDS ${SRCDIR}/res/Lugaru.rc
                                                  )
+   endif(MINGW)
   endif(NOT CMAKE_CROSSCOMPILING)
 
   # !!! FIXME: get rid of this.
@@ -139,22 +159,28 @@ if (APPLE)
     set(PLATFORM_LIBS "-framework Carbon -framework Cocoa -framework OpenGL -framework OpenAL")
 endif (APPLE)
 
-
-
 # Deal with dependencies...
-
 find_package(OpenGL REQUIRED)
-# force this include dir no matter what, so we get sane headers.
-include_directories("${DEPDIR}/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(WIN32)
 
 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)
+       find_package(OpenAL REQUIRED)
 else(NOT LUGARU_FORCE_INTERNAL_OPENAL)
        set(OPENAL_FOUND False)
 endif (NOT LUGARU_FORCE_INTERNAL_OPENAL)
 
-if (NOT OPENAL_FOUND)
+if (NOT OPENAL_FOUND OR LUGARU_FORCE_INTERNAL_OPENAL)
     message(STATUS "Using internal copy of OpenAL")
     set(LUGARU_MISSING_DEPS "${LUGARU_MISSING_DEPS} OpenAL")
     set(OPENALDIR "${DEPDIR}/OpenAL")
@@ -163,11 +189,16 @@ if (NOT OPENAL_FOUND)
 
     if (WIN32)
         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 (MSVC80)
+            set(OPENAL_LIBRARY
+                ${OPENALDIR}/lib/win32/msvc2005/OpenAL32.lib
+            )
+        endif (MSVC80)
+        if (MSVC90)
+            set(OPENAL_LIBRARY
+                ${OPENALDIR}/lib/win32/msvc2008/OpenAL32.lib
+            )
+        endif (MSVC90)
         if (MINGW)
             set(OPENAL_LIBRARY
                 ${OPENALDIR}/lib/win32/mingw/libOpenAL32.dll.a
@@ -178,7 +209,7 @@ if (NOT OPENAL_FOUND)
     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)
+endif (NOT OPENAL_FOUND OR LUGARU_FORCE_INTERNAL_OPENAL)
 
 option (LUGARU_FORCE_INTERNAL_SDL "Force internal libSDL, even if there's a system version" False)
 if (NOT LUGARU_FORCE_INTERNAL_SDL)
@@ -203,12 +234,18 @@ if (NOT SDL_FOUND)
 
     if (WIN32)
         set(LUGARU_HAS_INTERNAL_SDL True)
-        if (MSVC)
+        if (MSVC80)
+          set(SDL_LIBRARY
+              ${SDLDIR}/lib/win32/msvc2005/SDLmain.lib
+              ${SDLDIR}/lib/win32/msvc2005/SDL.lib
+          )
+        endif (MSVC80)
+        if (MSVC90)
           set(SDL_LIBRARY
-              ${SDLDIR}/lib/win32/msvc/SDLmain.lib
-              ${SDLDIR}/lib/win32/msvc/SDL.lib
+              ${SDLDIR}/lib/win32/msvc2008/SDLmain.lib
+              ${SDLDIR}/lib/win32/msvc2008/SDL.lib
           )
-        endif (MSVC)
+        endif (MSVC90)
         if (MINGW)
           set(SDL_LIBRARY
               "mingw32"
@@ -453,10 +490,14 @@ endif(WIN32)
 # Install target
 if(WIN32)
        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(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)
+               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)
        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})