X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=CMakeLists.txt;h=822300db2c643b49408a60b363e230b70d9c0edb;hb=8c5a754da6e78011ecbf6a8d1ab4469070cc72b8;hp=30aef8cb9bbda60cef56b2a56f271f7ad20a7c8d;hpb=eaca5a12f009c9fb9c95a2e728a071e972e698d0;p=lugaru.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 30aef8c..822300d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,8 @@ project(lugaru) cmake_minimum_required(VERSION 3.5) +INCLUDE(FindPkgConfig) + set(SRCDIR "${CMAKE_CURRENT_SOURCE_DIR}/Source") set(DEPDIR "${CMAKE_CURRENT_SOURCE_DIR}/Dependencies") @@ -38,7 +40,6 @@ 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) @@ -137,13 +138,40 @@ if(MSVC) # MSVC non-C99 support biting us hard endif(MSVC) if(WIN32) - ENABLE_LANGUAGE(RC) - - # !!! FIXME: get rid of WinDefs.{cpp,h} + if(CMAKE_CROSSCOMPILING) + ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lugaru_resource.obj + COMMAND ${CMAKE_RC_COMPILER} + -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. set(LUGARU_SRCS - ${LUGARU_SRCS} - ${SRCDIR}/WinDefs.cpp - ${SRCDIR}/win-res/Lugaru.rc) + ${LUGARU_SRCS} + ${SRCDIR}/WinDefs.cpp) set(LUGARU_H ${LUGARU_H} @@ -158,16 +186,10 @@ endif (APPLE) # Deal with dependencies... find_package(OpenGL REQUIRED) # 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) +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(WIN32) +endif (LUGARU_FORCE_INTERNAL_OPENGL) if(MSVC) # More Visual Studio annoyances include_directories("${DEPDIR}/msinttypes") @@ -175,7 +197,12 @@ endif(MSVC) 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) + # FIXME: We should remove bundled libs and allow building OpenAL from source, for all platforms + if (WIN32) + find_package(OpenAL) + else (WIN32) + find_package(OpenAL REQUIRED) + endif() else(NOT LUGARU_FORCE_INTERNAL_OPENAL) set(OPENAL_FOUND False) endif (NOT LUGARU_FORCE_INTERNAL_OPENAL) @@ -206,49 +233,7 @@ if (NOT OPENAL_FOUND OR LUGARU_FORCE_INTERNAL_OPENAL) endif (NOT LUGARU_HAS_INTERNAL_OPENAL) 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) - find_package(SDL) -else(NOT LUGARU_FORCE_INTERNAL_SDL) - set(SDL_FOUND False) -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") - set(SDLDIR "${DEPDIR}/SDL12") - set(SDL_INCLUDE_DIR "${SDLDIR}/include") - set(SDL_LIBRARY "") - if (APPLE) - set(LUGARU_HAS_INTERNAL_SDL True) - set(SDL_LIBRARY - ${SDLDIR}/lib/macosx/libSDL-1.2.0.dylib - ${SDLDIR}/lib/macosx/libSDLmain-osx.a - ) - endif (APPLE) - - if (WIN32) - set(LUGARU_HAS_INTERNAL_SDL True) - if (MSVC) - set(SDL_LIBRARY - ${SDLDIR}/lib/win32/msvc2008/SDLmain.lib - ${SDLDIR}/lib/win32/msvc2008/SDL.lib - ) - endif (MSVC) - if (MINGW) - set(SDL_LIBRARY - "mingw32" - ${SDLDIR}/lib/win32/mingw/libSDLmain.a - ${SDLDIR}/lib/win32/mingw/libSDL.dll.a - "-mwindows" - ) - endif (MINGW) - endif (WIN32) - - 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_FOUND) +find_package(sdl2 REQUIRED) option (LUGARU_FORCE_INTERNAL_PNG "Force internal libPNG, even if there's a system version" False) if (NOT LUGARU_FORCE_INTERNAL_PNG) @@ -453,16 +438,20 @@ include_directories( ${ZLIB_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} ${GLU_INCLUDE_DIR} - ${SDL_INCLUDE_DIR} + ${SDL2_INCLUDE_DIRS} ${VORBISFILE_INCLUDE_DIR} ${OGG_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/Source ) -set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL_LIBRARY} ${OPENGL_glu_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY} ${PLATFORM_LIBS}) +set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL2_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ${VORBISFILE_LIBRARY} ${OGG_LIBRARY} ${PLATFORM_LIBS}) -add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H}) +if(WIN32) + add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H} lugaru_resource.obj) +else(WIN32) + add_executable(lugaru ${LUGARU_SRCS} ${LUGARU_H}) +endif(WIN32) target_link_libraries(lugaru ${LUGARU_LIBS}) @@ -485,11 +474,9 @@ endif(APPLE) if(WIN32) install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX}) 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(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) @@ -499,9 +486,6 @@ else(WIN32) 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)