include(FetchContent) unset(assimp_FOUND) find_package(assimp QUIET) if (assimp_FOUND) message("Using system assimp") elseif (USE_ASSIMP) if(NOT DEFINED ASSIMP_REPO) set(ASSIMP_REPO https://github.com/assimp/assimp.git) endif () FetchContent_Declare( assimp EXCLUDE_FROM_ALL GIT_REPOSITORY ${ASSIMP_REPO} GIT_TAG v5.0.1 GIT_SHALLOW TRUE ) set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(ASSIMP_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) set(ASSIMP_INJECT_DEBUG_POSTFIX OFF CACHE BOOL "" FORCE) set(ASSIMP_INSTALL OFF CACHE BOOL "" FORCE) set(ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL "" FORCE) set(ASSIMP_BUILD_SAMPLES OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(assimp) set(assimp_BUILT ON CACHE INTERNAL "fetched assimp found") endif () function(LinkAssimp TARGET) if (NOT assimp_BUILT) find_package(assimp QUIET) endif () if (assimp_FOUND OR assimp_BUILT) target_link_libraries(${TARGET} PUBLIC assimp) endif () endfunction()