# 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)
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
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
common/day.c
common/environment.c
common/facedir.c
+ common/init.c
common/interrupt.c
common/item.c
common/node.c
target_link_libraries(dragonblocks
PUBLIC pthread
PUBLIC m
+ PUBLIC ${CMAKE_DL_LIBS}
PUBLIC perlin
PUBLIC dragonnet
PUBLIC dragonstd
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