]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/CMakeLists.txt
Improve diagnostics when invoked from incorrect path
[dragonblocks_alpha.git] / src / CMakeLists.txt
index 6c9838a0f36dd22bb86df0c07fc5121b6952bcac..ae0936f0077eb5122e55c830260f3e88e30e53ef 100644 (file)
@@ -15,11 +15,13 @@ endif()
 
 # Dependencies
 
-cmake_policy(SET CMP0077 NEW)
+set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
 
 set(SKIP_INSTALL_ALL ON)
 set(BUILD_SHARED_LIBS OFF)
+
 set(ZLIB_LIBRARY zlibstatic)
+set(ZLIB_INCLUDE_DIR "${DEPS_DIR}/zlib")
 
 set(FT_DISABLE_ZLIB OFF)
 set(FT_DISABLE_BZIP2 ON)
@@ -27,18 +29,13 @@ set(FT_DISABLE_PNG ON)
 set(FT_DISABLE_HARFBUZZ ON)
 set(FT_DISABLE_BROTLI ON)
 
-add_subdirectory("${DEPS_DIR}/glfw" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/glfw")
-add_subdirectory("${DEPS_DIR}/glew-cmake" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/glew")
-add_subdirectory("${DEPS_DIR}/sqlite3-cmake" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/sqlite3")
-add_subdirectory("${DEPS_DIR}/perlin" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/perlin")
-add_subdirectory("${DEPS_DIR}/asprintf" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/asprintf")
-add_subdirectory("${DEPS_DIR}/dragonnet" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/dragonnet")
-add_subdirectory("${DEPS_DIR}/dragonstd" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/dragonstd")
-add_subdirectory("${DEPS_DIR}/getline" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/getline")
-add_subdirectory("${DEPS_DIR}/stpcpy" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/stpcpy")
-add_subdirectory("${DEPS_DIR}/linenoise" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/linenoise")
-add_subdirectory("${DEPS_DIR}/zlib" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/zlib")
-add_subdirectory("${DEPS_DIR}/freetype" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/freetype")
+foreach(DEP glfw glew-cmake sqlite3-cmake perlin asprintf dragonnet dragonstd getline stpcpy linenoise zlib freetype)
+       if(EXISTS "${DEPS_DIR}/${DEP}/CMakeLists.txt")
+               add_subdirectory("${DEPS_DIR}/${DEP}" EXCLUDE_FROM_ALL "${CMAKE_CURRENT_BINARY_DIR}/${DEP}")
+       else()
+               message(FATAL_ERROR "Submodule ${DEPS_DIR}/${DEP} does not contain CMakeLists.txt. This is most likely due to submodules not being updated. Use this command to fix the issue:\n\tgit submodule update --init --recursive\nAfter that, run CMake again.")
+       endif()
+endforeach()
 
 # Options
 
@@ -49,6 +46,7 @@ endif()
 add_compile_definitions("USE_DRAGONNET")
 add_compile_definitions("GLEW_STATIC")
 add_compile_definitions("ASSET_PATH=\"${ASSET_PATH}\"")
+add_compile_definitions("__USE_MINGW_ANSI_STDIO")
 
 add_compile_options(
        -Wall
@@ -79,6 +77,7 @@ add_library(dragonblocks
        common/day.c
        common/environment.c
        common/facedir.c
+       common/init.c
        common/interrupt.c
        common/item.c
        common/node.c
@@ -98,6 +97,7 @@ target_include_directories(dragonblocks
 target_link_libraries(dragonblocks
        PUBLIC pthread
        PUBLIC m
+       PUBLIC ${CMAKE_DL_LIBS}
        PUBLIC perlin
        PUBLIC dragonnet
        PUBLIC dragonstd
@@ -125,13 +125,13 @@ add_executable(dragonblocks_client
        client/font.c
        client/frustum.c
        client/game.c
-       client/gl_debug.c
        client/gui.c
        client/input.c
        client/interact.c
        client/light.c
        client/mesh.c
        client/model.c
+       client/opengl.c
        client/raycast.c
        client/screenshot.c
        client/shader.c