@@ -214,6 +214,10 @@ set(GRN_RELATIVE_PLUGINS_DIR
214214 "${CMAKE_INSTALL_LIBDIR} /${GRN_PROJECT_NAME} /plugins" )
215215set (GRN_PLUGINS_DIR "${CMAKE_INSTALL_PREFIX} /${GRN_RELATIVE_PLUGINS_DIR} " )
216216set (GRN_PLUGIN_SUFFIX "${CMAKE_SHARED_MODULE_SUFFIX} " )
217+ set (GRN_RELATIVE_GGML_BACKENDS_DIR
218+ "${CMAKE_INSTALL_LIBDIR} /${GRN_PROJECT_NAME} /ggml" )
219+ set (GRN_GGML_BACKENDS_DIR
220+ "${CMAKE_INSTALL_PREFIX} /${GRN_RELATIVE_GGML_BACKENDS_DIR} " )
217221set (GRN_DLL_FILENAME "libgroonga${CMAKE_SHARED_LIBRARY_SUFFIX} " )
218222set (GRN_QUERY_EXPANDER_TSV_RELATIVE_SYNONYMS_FILE
219223 "${GRN_CONFIG_DIR} /synonyms.tsv" )
@@ -1506,9 +1510,9 @@ else()
15061510 set (GRN_WITH_H3 FALSE )
15071511endif ()
15081512
1509- set (GRN_LLAMA_CPP_BUNDLED_VERSION "b3861 " )
1513+ set (GRN_LLAMA_CPP_BUNDLED_VERSION "b4397 " )
15101514set (GRN_LLAMA_CPP_BUNDLED_SHA256
1511- "53fe4caa810979a1b9ab92cd0d6d3f2fc34337b507f4e0e8a7c9bd106a47413c " )
1515+ "51e5ac9b5c18756cf46ebc0659dcd57542800dc6582bbdf737dee064aaebfa34 " )
15121516set (GRN_WITH_LLAMA_CPP
15131517 "auto"
15141518 CACHE STRING "Use llama.cpp for LLM." )
@@ -1548,20 +1552,43 @@ if(NOT "${GRN_WITH_LLAMA_CPP}" STREQUAL "no")
15481552 URL ${LLAMA_CPP_SOURCE_URL}
15491553 URL_HASH "SHA256=${GRN_LLAMA_CPP_BUNDLED_SHA256} " )
15501554 grn_prepare_fetchcontent()
1555+ set (BUILD_SHARED_LIBS ON )
1556+ set (BUILD_STATIC_LIBS OFF )
1557+ set (GGML_BACKEND_DL ON )
1558+ set (GGML_CPU_ALL_VARIANTS ON )
1559+ set (GGML_LLAMAFILE ON )
15511560 set (LLAMA_ALL_WARNINGS OFF )
15521561 fetchcontent_makeavailable(llama_cpp)
15531562 if (CMAKE_VERSION VERSION_LESS 3.28)
15541563 set_property (DIRECTORY ${llama_cpp_SOURCE_DIR} PROPERTY EXCLUDE_FROM_ALL
15551564 TRUE )
15561565 endif ()
1566+ set_target_properties (llama PROPERTIES OUTPUT_NAME "groonga-llama" )
1567+ set_target_properties (ggml-base PROPERTIES OUTPUT_NAME
1568+ "groonga-ggml-base" )
1569+ set_target_properties (ggml PROPERTIES OUTPUT_NAME "groonga-ggml" )
1570+ # If llama.cpp set version, we can remove this.
1571+ set_target_properties (llama PROPERTIES VERSION "0.0.0" SOVERSION "0" )
1572+ set_target_properties (ggml-base PROPERTIES VERSION "0.0.0" SOVERSION "0" )
1573+ set_target_properties (ggml PROPERTIES VERSION "0.0.0" SOVERSION "0" )
15571574 install (
15581575 FILES "${llama_cpp_SOURCE_DIR} /AUTHORS"
15591576 "${llama_cpp_SOURCE_DIR} /LICENSE"
15601577 "${llama_cpp_SOURCE_DIR} /README.md"
15611578 DESTINATION "${GRN_DATA_DIR} /llama.cpp" )
1579+ install (TARGETS llama ggml-base ggml PUBLIC_HEADER EXCLUDE_FROM_ALL )
1580+ foreach (GGML_BACKEND
1581+ ggml-cpu-sandybridge ggml-cpu-haswell ggml-cpu-skylakex
1582+ ggml-cpu-icelake ggml-cpu-alderlake ggml-cpu-sapphirerapids)
1583+ install (TARGETS ${GGML_BACKEND}
1584+ LIBRARY DESTINATION "${GRN_RELATIVE_GGML_BACKENDS_DIR} " )
1585+ endforeach ()
15621586 endfunction ()
15631587 grn_build_llama_cpp()
15641588 target_link_libraries (grn_dependencies INTERFACE llama)
1589+ add_library (Groonga::ggml-base ALIAS ggml-base)
1590+ add_library (Groonga::ggml ALIAS ggml)
1591+ add_library (Groonga::llama ALIAS llama)
15651592 set (GRN_WITH_LLAMA_CPP_BUNDLED TRUE )
15661593 message (STATUS "llama.cpp: bundled" )
15671594 else ()
0 commit comments