set(DEPS_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/include") set(DEPS_LIBRARY_DIR "${CMAKE_CURRENT_LIST_DIR}/lib") if(WIN32 AND NOT MINGW) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/win") elseif(WIN32 AND MINGW) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/mingw") elseif(UNIX AND NOT APPLE) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/linux") elseif(UNIX AND APPLE) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}/apple") else() message(FATAL_ERROR "Unsupported target platform") endif() if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}32") elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}64") else() message(FATAL_ERROR "Unsupported CMAKE_SIZEOF_VOID_P") endif() function(import_shared_library library) add_library(${library} SHARED IMPORTED GLOBAL) set_target_properties(${library} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${DEPS_INCLUDE_DIR}") set_target_properties(${library} PROPERTIES IMPORTED_LOCATION "${DEPS_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${library}${CMAKE_SHARED_LIBRARY_SUFFIX}") set_target_properties(${library} PROPERTIES IMPORTED_IMPLIB "${DEPS_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${library}${CMAKE_STATIC_LIBRARY_SUFFIX}") install(FILES "${DEPS_LIBRARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${library}${CMAKE_SHARED_LIBRARY_SUFFIX}" RUNTIME DESTINATION ".") endfunction() function(import_static_library library) add_library(${library} STATIC IMPORTED GLOBAL) set_target_properties(${library} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${DEPS_INCLUDE_DIR}") set_target_properties(${library} PROPERTIES IMPORTED_LOCATION "${DEPS_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${library}${CMAKE_STATIC_LIBRARY_SUFFIX}") endfunction() set(PHYSFS_ARCHIVE_ZIP ON CACHE BOOL "" FORCE) set(PHYSFS_ARCHIVE_7Z ON CACHE BOOL "" FORCE) find_package(glfw3 3.3 QUIET) if(NOT glfw3_FOUND) include(FetchContent) set(GLFW_INSTALL OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) FetchContent_Declare(glfw GIT_REPOSITORY https://github.com/glfw/glfw.git GIT_TAG 3.3) FetchContent_MakeAvailable(glfw) add_library(glfw3 ALIAS glfw) endif() add_subdirectory(src/dr_libs) add_subdirectory(src/enet) add_subdirectory(src/fastnoiselite) add_subdirectory(src/glad) add_subdirectory(src/imgui) add_subdirectory(src/miniz) add_subdirectory(src/parson) add_subdirectory(src/physfs) add_subdirectory(src/salad) add_subdirectory(src/spdlog) add_subdirectory(src/stb) set(DEPS_INCLUDE_DIR "${DEPS_INCLUDE_DIR}" PARENT_SCOPE) set(DEPS_LIBRARY_DIR "${DEPS_LIBRARY_DIR}" PARENT_SCOPE)