project(lugaru)
cmake_minimum_required(VERSION 3.5)
+cmake_policy(SET CMP0004 OLD)
INCLUDE(FindPkgConfig)
endif(MSVC)
if(WIN32)
- 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)
-
- set(LUGARU_H
- ${LUGARU_H}
- ${SRCDIR}/WinDefs.h
- ${SRCDIR}/win-res/resource.h)
+ 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})
if(WIN32)
if(WIN32)
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/lugaru.exe DESTINATION ${CMAKE_INSTALL_PREFIX})
- if(MSVC)
- install(FILES ${OPENALDIR}/lib/win32/msvc2008/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
- endif(MSVC)
if(MINGW)
- install(FILES ${OPENALDIR}/lib/win32/mingw/OpenAL32.dll DESTINATION ${CMAKE_INSTALL_PREFIX})
+ set(LIBGCC_S libgcc_s_sjlj-1.dll)
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") # MinGW64
+ set(LIBGCC_S libgcc_s_seh-1.dll)
+ endif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ # FIXME: Filter out unneeded DLLs when building against some internal deps
+ set(DLL_ROOT ${CMAKE_FIND_ROOT_PATH}/bin)
+ install(FILES ${DLL_ROOT}/${LIBGCC_S}
+ ${DLL_ROOT}/libjpeg-62.dll
+ ${DLL_ROOT}/libogg-0.dll
+ ${DLL_ROOT}/libpng16-16.dll
+ ${DLL_ROOT}/libstdc++-6.dll
+ ${DLL_ROOT}/libvorbis-0.dll
+ ${DLL_ROOT}/libvorbisfile-3.dll
+ ${DLL_ROOT}/libwinpthread-1.dll
+ ${DLL_ROOT}/OpenAL32.dll
+ ${DLL_ROOT}/SDL2.dll
+ ${DLL_ROOT}/zlib1.dll
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
endif(MINGW)
else(WIN32)
if(APPLE)
if(NOT APPLE)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/Data DESTINATION ${CMAKE_INSTALL_PREFIX})
+ install(FILES ${CMAKE_SOURCE_DIR}/README.md
+ ${CMAKE_SOURCE_DIR}/COPYING.txt
+ ${CMAKE_SOURCE_DIR}/CONTENT-LICENSE.txt
+ DESTINATION ${CMAKE_INSTALL_PREFIX})
endif(NOT APPLE)
if(APPLE)