From dc76193516672ab84fc0aed1d5b3076ce3f334e7 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx+gentoo@gmail.com>
Date: Tue, 17 Feb 2026 12:52:29 +0100
Subject: make installing runtime deps optional

Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com>

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40c22f4b..375ddff5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,6 +84,8 @@ set(GGML_VERSION_MINOR 0)
 set(GGML_VERSION_PATCH 0)
 set(GGML_VERSION "${GGML_VERSION_MAJOR}.${GGML_VERSION_MINOR}.${GGML_VERSION_PATCH}")
 
+option(OLLAMA_INSTALL_RUNTIME_DEPS "Install the dependencies of library as well" ON)
+
 set(GGML_CPU ON)
 add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src)
 set_property(TARGET ggml PROPERTY EXCLUDE_FROM_ALL TRUE)
@@ -102,12 +104,16 @@ foreach(variant ${CPU_VARIANTS})
 endforeach()
 
 install(TARGETS ggml-base ${CPU_VARIANTS}
-    RUNTIME_DEPENDENCIES
-        PRE_EXCLUDE_REGEXES ".*"
+    RUNTIME_DEPENDENCY_SET base
     RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CPU
     LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CPU
     FRAMEWORK DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CPU
 )
+if(OLLAMA_INSTALL_RUNTIME_DEPS)
+install(RUNTIME_DEPENDENCY_SET base
+        PRE_EXCLUDE_REGEXES ".*"
+)
+endif()
 
 check_language(CUDA)
 if(CMAKE_CUDA_COMPILER)
@@ -119,13 +125,18 @@ if(CMAKE_CUDA_COMPILER)
     add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-cuda)
     target_include_directories(ggml-cuda PRIVATE ${GGML_INCLUDE_DIRS})
     install(TARGETS ggml-cuda
+        RUNTIME_DEPENDENCY_SET cuda
+        RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CUDA
+        LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CUDA
+    )
+    if(OLLAMA_INSTALL_RUNTIME_DEPS)
+    install(RUNTIME_DEPENDENCY_SET cuda
         RUNTIME_DEPENDENCIES
             DIRECTORIES ${CUDAToolkit_BIN_DIR} ${CUDAToolkit_BIN_DIR}/x64 ${CUDAToolkit_LIBRARY_DIR}
             PRE_INCLUDE_REGEXES cublas cublasLt cudart
             PRE_EXCLUDE_REGEXES ".*"
-        RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CUDA
-        LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT CUDA
     )
+    endif()
 endif()
 
 set(WINDOWS_AMDGPU_TARGETS_EXCLUDE_REGEX "^gfx(908|90a|1200|1201):xnack[+-]$"
@@ -162,13 +173,12 @@ if(CMAKE_HIP_COMPILER)
             RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT HIP
             LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT HIP
         )
+        if(OLLAMA_INSTALL_RUNTIME_DEPS)
         install(RUNTIME_DEPENDENCY_SET rocm
                 DIRECTORIES ${HIP_BIN_INSTALL_DIR} ${HIP_LIB_INSTALL_DIR}
                 PRE_INCLUDE_REGEXES hipblas rocblas amdhip64 rocsolver amd_comgr hsa-runtime64 rocsparse tinfo rocprofiler-register roctx64 rocroller drm drm_amdgpu numa elf
                 PRE_EXCLUDE_REGEXES ".*"
                 POST_EXCLUDE_REGEXES "system32"
-            RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT HIP
-            LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT HIP
         )
 
         foreach(HIP_LIB_BIN_INSTALL_DIR IN ITEMS ${HIP_BIN_INSTALL_DIR} ${HIP_LIB_INSTALL_DIR})
@@ -177,6 +187,7 @@ if(CMAKE_HIP_COMPILER)
                 break()
             endif()
         endforeach()
+        endif()
     endif()
 endif()
 
@@ -186,12 +197,16 @@ if(NOT APPLE)
         add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ml/backend/ggml/ggml/src/ggml-vulkan)
         target_include_directories(ggml-vulkan PRIVATE ${GGML_INCLUDE_DIRS})
         install(TARGETS ggml-vulkan
-            RUNTIME_DEPENDENCIES
-                PRE_INCLUDE_REGEXES vulkan
-                PRE_EXCLUDE_REGEXES ".*"
+            RUNTIME_DEPENDENCY_SET vulkan
             RUNTIME DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT Vulkan
             LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT Vulkan
         )
+        if(OLLAMA_INSTALL_RUNTIME_DEPS)
+        install(RUNTIME_DEPENDENCY_SET vulkan
+                PRE_INCLUDE_REGEXES vulkan
+                PRE_EXCLUDE_REGEXES ".*"
+        )
+        endif()
     endif()
 endif()
 
@@ -236,6 +251,7 @@ if(MLX_ENGINE)
         LIBRARY DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT MLX
         FRAMEWORK DESTINATION ${OLLAMA_INSTALL_DIR} COMPONENT MLX
     )
+    if(OLLAMA_INSTALL_RUNTIME_DEPS)
     install(RUNTIME_DEPENDENCY_SET mlx_runtime_deps
         DIRECTORIES ${MLX_RUNTIME_DIRS}
         PRE_INCLUDE_REGEXES ${MLX_INCLUDE_REGEXES}
@@ -375,4 +391,5 @@ if(MLX_ENGINE)
                 COMPONENT MLX_VENDOR)
         endif()
     endif()
+    endif()
 endif()
-- 
2.54.0

