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)
-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)
${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})