X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=CMakeLists.txt;h=bcc30d93b0f1fe3406fe9c71890388bcac4b1966;hb=72ad782ae757aab6f247a7b0f58d17756c98734b;hp=81a7d67d6aeaaa02696a6e6d47cbcdccbebc5e99;hpb=dcacd1c62fda9af9a042b2327041ea057652f1b3;p=lugaru.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 81a7d67..bcc30d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ project(lugaru) cmake_minimum_required(VERSION 3.5) +cmake_policy(SET CMP0004 OLD) INCLUDE(FindPkgConfig) @@ -138,18 +139,23 @@ if(MSVC) # MSVC non-C99 support biting us hard endif(MSVC) if(WIN32) - ENABLE_LANGUAGE(RC) - - # !!! FIXME: get rid of WinDefs.{cpp,h} - set(LUGARU_SRCS - ${LUGARU_SRCS} - ${SRCDIR}/WinDefs.cpp - ${SRCDIR}/win-res/Lugaru.rc) - - set(LUGARU_H - ${LUGARU_H} - ${SRCDIR}/WinDefs.h - ${SRCDIR}/win-res/resource.h) + 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 + ) + + # !!! FIXME: get rid of this. + set(LUGARU_SRCS + ${LUGARU_SRCS} + ${SRCDIR}/WinDefs.cpp) + + set(LUGARU_H + ${LUGARU_H} + ${SRCDIR}/WinDefs.h + ${SRCDIR}/win-res/resource.h) endif(WIN32) if (APPLE) @@ -159,16 +165,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") @@ -176,38 +176,21 @@ 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) -else(NOT LUGARU_FORCE_INTERNAL_OPENAL) - set(OPENAL_FOUND False) + if (WIN32) + pkg_check_modules(OPENAL openal) + set(OPENAL_LIBRARY ${OPENAL_LIBRARIES}) + else (WIN32) + find_package(OpenAL REQUIRED) + endif() endif (NOT LUGARU_FORCE_INTERNAL_OPENAL) 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") - set(OPENAL_INCLUDE_DIR "${OPENALDIR}/include/AL") - set(OPENAL_LIBRARY "") - - if (WIN32) - set(LUGARU_HAS_INTERNAL_OPENAL True) - if (MSVC) - set(OPENAL_LIBRARY - ${OPENALDIR}/lib/win32/msvc2008/OpenAL32.lib - ) - endif (MSVC) - if (MINGW) - set(OPENAL_LIBRARY - ${OPENALDIR}/lib/win32/mingw/libOpenAL32.dll.a - ) - endif (MINGW) - endif(WIN32) - - if (NOT LUGARU_HAS_INTERNAL_OPENAL) - message(ERROR "We don't have a prebuilt OpenAL for this platform.") - endif (NOT LUGARU_HAS_INTERNAL_OPENAL) + message(ERROR "*** Not implemented, terminating.") + # FIXME: We should allow building OpenAL from source, for all platforms endif (NOT OPENAL_FOUND OR LUGARU_FORCE_INTERNAL_OPENAL) -PKG_SEARCH_MODULE(SDL2 REQUIRED sdl2) +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) @@ -418,10 +401,14 @@ include_directories( ${CMAKE_SOURCE_DIR}/Source ) -set(LUGARU_LIBS ${OPENAL_LIBRARY} ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARIES} ${SDL2_LIBRARIES} ${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})