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 GIT_REPOSITORY https://github.com/skypjack/entt.git GIT_TAG v3.11.1 GIT_SHALLOW Yes OVERRIDE_FIND_PACKAGE ) set(BUILD_GMOCK OFF CACHE INTERNAL "") set(INSTALL_GTEST OFF CACHE INTERNAL "") FetchContent_Declare( GTest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG v1.13.0 GIT_SHALLOW Yes OVERRIDE_FIND_PACKAGE ) set(JSON_MultipleHeaders ON CACHE INTERNAL "") FetchContent_Declare( nlohmann_json GIT_REPOSITORY https://github.com/nlohmann/json.git GIT_TAG v3.11.2 GIT_SHALLOW Yes OVERRIDE_FIND_PACKAGE ) set(CMAKE_BUILD_TYPE Release CACHE INTERNAL "") set(OpenGL_GL_PREFERENCE GLVND CACHE INTERNAL "") set(USE_EXTERNAL_GLFW OFF CACHE INTERNAL "") FetchContent_Declare( raylib GIT_REPOSITORY https://github.com/raysan5/raylib.git GIT_TAG 4.2.0 GIT_SHALLOW Yes OVERRIDE_FIND_PACKAGE ) MakeAvailable(EnTT GTest nlohmann_json raylib)