diff --git a/source/common/CMakeLists.txt b/source/common/CMakeLists.txt index a4b1a8a8c3..5278649e9d 100644 --- a/source/common/CMakeLists.txt +++ b/source/common/CMakeLists.txt @@ -49,14 +49,22 @@ if (UR_STATIC_ADAPTER_L0) endif() endif() -set(UMF_BUILD_TESTS OFF CACHE INTERNAL "Build UMF tests") -set(UMF_BUILD_EXAMPLES OFF CACHE INTERNAL "Build UMF examples") -set(UMF_BUILD_SHARED_LIBRARY ${UMF_BUILD_SHARED_LIBRARY} CACHE INTERNAL "Build UMF shared library") -set(UMF_BUILD_LIBUMF_POOL_DISJOINT ON CACHE INTERNAL "Build Disjoint Pool") -set(UMF_BUILD_CUDA_PROVIDER OFF CACHE INTERNAL "Build UMF CUDA provider") - -FetchContent_MakeAvailable(unified-memory-framework) -FetchContent_GetProperties(unified-memory-framework) +set(UR_USE_EXTERNAL_UMF OFF CACHE BOOL "Use a pre-built UMF") + +if (UR_USE_EXTERNAL_UMF) + find_package(umf REQUIRED) + # Add an alias matching the FetchContent case + add_library(umf::headers ALIAS umf::umf_headers) +else() + set(UMF_BUILD_TESTS OFF CACHE INTERNAL "Build UMF tests") + set(UMF_BUILD_EXAMPLES OFF CACHE INTERNAL "Build UMF examples") + set(UMF_BUILD_SHARED_LIBRARY ${UMF_BUILD_SHARED_LIBRARY} CACHE INTERNAL "Build UMF shared library") + set(UMF_BUILD_LIBUMF_POOL_DISJOINT ON CACHE INTERNAL "Build Disjoint Pool") + set(UMF_BUILD_CUDA_PROVIDER OFF CACHE INTERNAL "Build UMF CUDA provider") + + FetchContent_MakeAvailable(unified-memory-framework) + FetchContent_GetProperties(unified-memory-framework) +endif() if(UR_ENABLE_LATENCY_HISTOGRAM) set(HDR_HISTOGRAM_BUILD_STATIC CACHE INTERNAL ON "")