set(CMAKE_FOLDER "External") FetchContent_Declare( bullet GIT_REPOSITORY https://github.com/bulletphysics/bullet3.git GIT_TAG 2.89 ) FetchContent_Declare( spirv-cross GIT_REPOSITORY https://github.com/KhronosGroup/SPIRV-Cross.git GIT_TAG 2021-01-15 ) FetchContent_Declare( glslang GIT_REPOSITORY https://github.com/KhronosGroup/glslang.git GIT_TAG 3de5cfe50edecd001e6d703555284d9b10b3dd57 # taken from https://github.com/KhronosGroup/SPIRV-Cross/blob/2021-01-15/checkout_glslang_spirv_tools.sh#L3 ) # bullet set(BUILD_BULLET3 OFF CACHE BOOL "" FORCE) set(BUILD_BULLET3_DEMOS OFF CACHE BOOL "" FORCE) set(BUILD_BULLET2_DEMOS OFF CACHE BOOL "" FORCE) set(BUILD_CPU_DEMOS OFF CACHE BOOL "" FORCE) set(USE_GRAPHICAL_BENCHMARK OFF CACHE BOOL "" FORCE) set(BUILD_EXTRAS OFF CACHE BOOL "" FORCE) set(INSTALL_LIBS OFF CACHE BOOL "" FORCE) # spirv-cross set(BUILD_UNIT_TESTS OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_SKIP_INSTALL ON CACHE BOOL "" FORCE) set(BUILD_EXTERNAL OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_CLI OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_TESTS OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_HLSL OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_CPP OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_REFLECT OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_C_API OFF CACHE BOOL "" FORCE) set(SPIRV_CROSS_ENABLE_UTIL OFF CACHE BOOL "" FORCE) # glslang set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(BUILD_EXTERNAL OFF CACHE BOOL "" FORCE) set(ENABLE_GLSLANG_BINARIES OFF CACHE BOOL "" FORCE) set(USE_MSVC_RUNTIME_LIBRARY_DLL ON CACHE BOOL "" FORCE) set(ENABLE_GLSLANG_INSTALL OFF CACHE BOOL "" FORCE) set(ENABLE_CTEST OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(bullet) FetchContent_MakeAvailable(spirv-cross) FetchContent_MakeAvailable(glslang) if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") else() add_definitions(-Wno-everything) endif() set(OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF CACHE BOOL "" FORCE) set(BUILD_TESTING OFF CACHE BOOL "" FORCE) add_subdirectory(stb) add_subdirectory(imgui) add_subdirectory(magic_enum) add_subdirectory(smaa) add_subdirectory(doctest) include(FetchContent) FetchContent_Declare(json GIT_REPOSITORY https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent.git GIT_TAG v3.9.1) FetchContent_GetProperties(json) if(NOT json_POPULATED) FetchContent_Populate(json) add_subdirectory(${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL) endif() if(NOT ENABLE_IOS AND NOT ENABLE_TVOS) add_subdirectory(ogg) add_subdirectory(opus) add_library(opusfile opusfile/src/opusfile.c opusfile/src/info.c opusfile/src/internal.c opusfile/src/stream.c) target_include_directories(opusfile PUBLIC opusfile/include) target_link_libraries(opusfile PUBLIC ogg opus) endif() if(BUILD_TOOLS) FetchContent_Declare( assimp GIT_REPOSITORY https://github.com/assimp/assimp GIT_TAG v5.0.1 ) FetchContent_MakeAvailable(assimp) endif() FetchContent_Declare( fmt GIT_REPOSITORY https://github.com/fmtlib/fmt GIT_TAG 8.0.1 ) FetchContent_MakeAvailable(fmt)