Skip to content

Commit 2a11b6b

Browse files
authored
Add required ggml-base and backend libs to cmake pkg (ggml-org#10407)
1 parent 3ee6382 commit 2a11b6b

File tree

3 files changed

+35
-27
lines changed

3 files changed

+35
-27
lines changed

cmake/llama-config.cmake.in

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,11 @@ set(LLAMA_BUILD_COMMIT @LLAMA_BUILD_COMMIT@)
33
set(LLAMA_BUILD_NUMBER @LLAMA_BUILD_NUMBER@)
44
set(LLAMA_SHARED_LIB @BUILD_SHARED_LIBS@)
55

6-
set(GGML_BLAS @GGML_BLAS@)
7-
set(GGML_CUDA @GGML_CUDA@)
8-
set(GGML_METAL @GGML_METAL@)
9-
set(GGML_HIP @GGML_HIP@)
106
set(GGML_ACCELERATE @GGML_ACCELERATE@)
11-
set(GGML_VULKAN @GGML_VULKAN@)
127
set(GGML_VULKAN_CHECK_RESULTS @GGML_VULKAN_CHECK_RESULTS@)
138
set(GGML_VULKAN_DEBUG @GGML_VULKAN_DEBUG@)
149
set(GGML_VULKAN_MEMORY_DEBUG @GGML_VULKAN_MEMORY_DEBUG@)
1510
set(GGML_VULKAN_VALIDATE @GGML_VULKAN_VALIDATE@)
16-
set(GGML_SYCL @GGML_SYCL@)
1711
set(GGML_OPENMP @GGML_OPENMP@)
1812

1913
@PACKAGE_INIT@
@@ -22,10 +16,39 @@ set_and_check(LLAMA_INCLUDE_DIR "@PACKAGE_LLAMA_INCLUDE_INSTALL_DIR@")
2216
set_and_check(LLAMA_LIB_DIR "@PACKAGE_LLAMA_LIB_INSTALL_DIR@")
2317
set_and_check(LLAMA_BIN_DIR "@PACKAGE_LLAMA_BIN_INSTALL_DIR@")
2418

25-
# Ensure transient dependencies satisfied
26-
2719
find_package(Threads REQUIRED)
2820

21+
set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@")
22+
set(_llama_link_deps "")
23+
foreach(_ggml_lib ggml ggml-base)
24+
string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY")
25+
find_library(${_ggml_lib_var} ${_ggml_lib}
26+
REQUIRED
27+
HINTS ${LLAMA_LIB_DIR}
28+
NO_CMAKE_FIND_ROOT_PATH
29+
)
30+
list(APPEND _llama_link_deps "${${_ggml_lib_var}}")
31+
message(STATUS "Found ${${_ggml_lib_var}}")
32+
endforeach()
33+
34+
foreach(backend amx blas cann cpu cuda hip kompute metal musa rpc sycl vulkan)
35+
string(TOUPPER "GGML_${backend}" backend_id)
36+
set(_ggml_lib "ggml-${backend}")
37+
string(REPLACE "-" "_" _ggml_lib_var "${_ggml_lib}_LIBRARY")
38+
39+
find_library(${_ggml_lib_var} ${_ggml_lib}
40+
HINTS ${LLAMA_LIB_DIR}
41+
NO_CMAKE_FIND_ROOT_PATH
42+
)
43+
if(${_ggml_lib_var})
44+
list(APPEND _llama_link_deps "${${_ggml_lib_var}}")
45+
set(${backend_id} ON)
46+
message(STATUS "Found backend ${${_ggml_lib_var}}")
47+
else()
48+
set(${backend_id} OFF)
49+
endif()
50+
endforeach()
51+
2952
if (APPLE AND GGML_ACCELERATE)
3053
find_library(ACCELERATE_FRAMEWORK Accelerate REQUIRED)
3154
endif()
@@ -48,7 +71,7 @@ if (GGML_VULKAN)
4871
find_package(Vulkan REQUIRED)
4972
endif()
5073

51-
if (GGML_HIPBLAS)
74+
if (GGML_HIP)
5275
find_package(hip REQUIRED)
5376
find_package(hipblas REQUIRED)
5477
find_package(rocblas REQUIRED)
@@ -63,24 +86,13 @@ if (GGML_OPENMP)
6386
find_package(OpenMP REQUIRED)
6487
endif()
6588

66-
67-
find_library(ggml_LIBRARY ggml
68-
REQUIRED
69-
HINTS ${LLAMA_LIB_DIR}
70-
NO_CMAKE_FIND_ROOT_PATH
71-
)
72-
7389
find_library(llama_LIBRARY llama
7490
REQUIRED
7591
HINTS ${LLAMA_LIB_DIR}
7692
NO_CMAKE_FIND_ROOT_PATH
7793
)
7894

79-
set(_llama_link_deps "${ggml_LIBRARY}" "@GGML_LINK_LIBRARIES@")
80-
set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@")
81-
8295
add_library(llama UNKNOWN IMPORTED)
83-
8496
set_target_properties(llama
8597
PROPERTIES
8698
INTERFACE_INCLUDE_DIRECTORIES "${LLAMA_INCLUDE_DIR}"

ggml/CMakeLists.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,12 +235,8 @@ set_target_properties(ggml PROPERTIES PUBLIC_HEADER "${GGML_PUBLIC_HEADERS}")
235235
#if (GGML_METAL)
236236
# set_target_properties(ggml PROPERTIES RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/src/ggml-metal.metal")
237237
#endif()
238-
install(TARGETS ggml PUBLIC_HEADER)
239-
240-
if (BUILD_SHARED_LIBS)
241-
install(TARGETS ggml LIBRARY)
242-
install(TARGETS ggml-base LIBRARY)
243-
endif()
238+
install(TARGETS ggml LIBRARY PUBLIC_HEADER)
239+
install(TARGETS ggml-base LIBRARY)
244240

245241
# FIXME: this should be done in the backend cmake files
246242
if (GGML_METAL)

ggml/src/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,8 +239,8 @@ function(ggml_add_backend backend)
239239
if (${BUILD_SHARED_LIBS})
240240
target_compile_definitions(${backend_target} PRIVATE GGML_BACKEND_BUILD)
241241
target_compile_definitions(${backend_target} PUBLIC GGML_BACKEND_SHARED)
242-
install(TARGETS ${backend_target} LIBRARY)
243242
endif()
243+
install(TARGETS ${backend_target} LIBRARY)
244244
target_link_libraries(ggml PUBLIC ${backend_target})
245245
string(TOUPPER "GGML_USE_${backend}" backend_use)
246246
target_compile_definitions(ggml PUBLIC ${backend_use})

0 commit comments

Comments
 (0)