From 8590508d3d084d1d9df72dedcfe89454eaae12a0 Mon Sep 17 00:00:00 2001 From: Mason M Date: Thu, 27 Jun 2024 14:01:10 -0300 Subject: [PATCH] Link against ggml in cmake pkg --- CMakeLists.txt | 13 ++++++++++--- cmake/llama-config.cmake.in | 9 +++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8467767ad..03dfce57c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,9 +123,16 @@ set(LLAMA_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Location o set(LLAMA_LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Location of library files") set(LLAMA_BIN_INSTALL_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Location of binary files") -get_directory_property(GGML_EXTRA_LIBS DIRECTORY ggml/src DEFINITION GGML_EXTRA_LIBS) -get_directory_property(GGML_TRANSIENT_DEFINES DIRECTORY ggml/src COMPILE_DEFINITIONS) -get_directory_property(LLAMA_TRANSIENT_DEFINES COMPILE_DEFINITIONS) + +# At the moment some compile definitions are placed within the ggml/src +# directory but not exported on the `ggml` target. This could be improved by +# determining _precisely_ which defines are necessary for the llama-config +# package. +# +get_directory_property(GGML_DIR_DEFINES DIRECTORY ggml/src COMPILE_DEFINITIONS) +get_target_property(GGML_TARGET_DEFINES ggml COMPILE_DEFINITIONS) +set(GGML_TRANSIENT_DEFINES ${GGML_TARGET_DEFINES} ${GGML_DIR_DEFINES}) +get_target_property(GGML_LINK_LIBRARIES ggml LINK_LIBRARIES) set_target_properties(llama PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/include/llama.h) install(TARGETS llama LIBRARY PUBLIC_HEADER) diff --git a/cmake/llama-config.cmake.in b/cmake/llama-config.cmake.in index a35e0cfee..f072b76a3 100644 --- a/cmake/llama-config.cmake.in +++ b/cmake/llama-config.cmake.in @@ -63,12 +63,17 @@ if (GGML_OPENMP) find_package(OpenMP REQUIRED) endif() + +find_library(ggml_LIBRARY ggml + REQUIRED + HINTS ${LLAMA_LIB_DIR}) + find_library(llama_LIBRARY llama REQUIRED HINTS ${LLAMA_LIB_DIR}) -set(_llama_link_deps "Threads::Threads" "@GGML_EXTRA_LIBS@") -set(_llama_transient_defines "@LLAMA_TRANSIENT_DEFINES@ @GGML_TRANSIENT_DEFINES@") +set(_llama_link_deps "${ggml_LIBRARY}" "@GGML_LINK_LIBRARIES@") +set(_llama_transient_defines "@GGML_TRANSIENT_DEFINES@") add_library(llama UNKNOWN IMPORTED)