project(lugaru)
cmake_minimum_required(VERSION 3.5)
+cmake_policy(SET CMP0004 OLD)
INCLUDE(FindPkgConfig)
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)
# 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")
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)
+ pkg_check_modules(OPENAL openal)
+ else (WIN32)
+ find_package(OpenAL REQUIRED)
+ endif()
else(NOT LUGARU_FORCE_INTERNAL_OPENAL)
set(OPENAL_FOUND False)
endif (NOT 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_INCLUDE_DIR "${OPENALDIR}/include")
set(OPENAL_LIBRARY "")
if (WIN32)
endif (NOT LUGARU_HAS_INTERNAL_OPENAL)
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)
${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})