]> git.jsancho.org Git - lugaru.git/blobdiff - CMakeLists.txt
Fixed install paths in CMake so that the compiled binary is properly installed
[lugaru.git] / CMakeLists.txt
index caf1f245993bf3476d73e3466486b3619f4fc53f..1a17e52561f4cc48d5a63884e46bd447f3cfeb59 100644 (file)
@@ -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)
 
@@ -145,7 +148,36 @@ find_package(OpenGL REQUIRED)
 # force this include dir no matter what, so we get sane headers.
 include_directories("${DEPDIR}/OpenGL")
 
-find_package(OpenAL REQUIRED)  # !!! FIXME: package a .dll for Windows?
+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)
+
+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 "")
+
+    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)
@@ -167,10 +199,18 @@ if (NOT SDL_FOUND)
 
     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)
@@ -393,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})