add_subdirectory(imgui) function(MakeAvailable) foreach(DEPNAME IN LISTS ARGN) string(TOLOWER "${DEPNAME}" DEPNAME) FetchContent_GetProperties(${DEPNAME}) if(NOT ${DEPNAME}_POPULATED) FetchContent_Populate(${DEPNAME}) add_subdirectory(${${DEPNAME}_SOURCE_DIR} ${${DEPNAME}_BINARY_DIR} EXCLUDE_FROM_ALL) endif() endforeach() endfunction() set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "") set(ENTT_USE_LIBCPP OFF CACHE INTERNAL "") set(ENTT_BUILD_TESTING OFF CACHE INTERNAL "") FetchContent_Declare( EnTT URL https://github.com/skypjack/entt/archive/refs/tags/v3.11.1.tar.gz URL_HASH SHA1=ef36f33d0edb3688eee8519e2350a9b62460c39f DOWNLOAD_EXTRACT_TIMESTAMP No ) set(BUILD_GMOCK OFF CACHE INTERNAL "") set(INSTALL_GTEST OFF CACHE INTERNAL "") FetchContent_Declare( GTest URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz URL_HASH SHA1=bfa4b5131b6eaac06962c251742c96aab3f7aa78 DOWNLOAD_EXTRACT_TIMESTAMP No ) set(JSON_MultipleHeaders ON CACHE INTERNAL "") FetchContent_Declare( nlohmann_json URL https://github.com/nlohmann/json/archive/refs/tags/v3.11.2.tar.gz URL_HASH SHA1=1b0701dc7fdc068aad8ce68fc3e019a038232437 DOWNLOAD_EXTRACT_TIMESTAMP No ) set(CMAKE_BUILD_TYPE Release CACHE INTERNAL "") set(OpenGL_GL_PREFERENCE GLVND CACHE INTERNAL "") set(USE_EXTERNAL_GLFW OFF CACHE INTERNAL "") FetchContent_Declare( raylib URL https://github.com/raysan5/raylib/archive/refs/tags/4.2.0.tar.gz URL_HASH SHA1=4fdc9d014a66247f99d371e0a12872f15a468133 DOWNLOAD_EXTRACT_TIMESTAMP No ) MakeAvailable(EnTT GTest nlohmann_json raylib)