build: integrate llguidance as an external project
This commit is contained in:
parent
f19655c4c0
commit
f4dc4b89fa
1 changed files with 27 additions and 0 deletions
|
@ -63,6 +63,7 @@ add_library(${TARGET} STATIC
|
||||||
console.h
|
console.h
|
||||||
json-schema-to-grammar.cpp
|
json-schema-to-grammar.cpp
|
||||||
json.hpp
|
json.hpp
|
||||||
|
llguidance.cpp
|
||||||
log.cpp
|
log.cpp
|
||||||
log.h
|
log.h
|
||||||
minja.hpp
|
minja.hpp
|
||||||
|
@ -89,6 +90,32 @@ if (LLAMA_CURL)
|
||||||
set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} ${CURL_LIBRARY})
|
set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} ${CURL_LIBRARY})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (LLAMA_LLGUIDANCE)
|
||||||
|
include(ExternalProject)
|
||||||
|
set(LLGUIDANCE_SRC ${CMAKE_BINARY_DIR}/llguidance/source)
|
||||||
|
set(LLGUIDANCE_PATH ${LLGUIDANCE_SRC}/target/release)
|
||||||
|
ExternalProject_Add(llguidance_ext
|
||||||
|
GIT_REPOSITORY https://github.com/guidance-ai/llguidance
|
||||||
|
GIT_TAG 0cbe6b3a6ee72e5726c76f13fe67e21a5895f679
|
||||||
|
PREFIX ${CMAKE_BINARY_DIR}/llguidance
|
||||||
|
SOURCE_DIR ${LLGUIDANCE_SRC}
|
||||||
|
BUILD_IN_SOURCE TRUE
|
||||||
|
CONFIGURE_COMMAND ""
|
||||||
|
BUILD_COMMAND cargo build --release
|
||||||
|
INSTALL_COMMAND ""
|
||||||
|
BUILD_BYPRODUCTS ${LLGUIDANCE_PATH}/libllguidance.a ${LLGUIDANCE_PATH}/llguidance.h
|
||||||
|
UPDATE_COMMAND ""
|
||||||
|
)
|
||||||
|
target_compile_definitions(${TARGET} PUBLIC LLAMA_USE_LLGUIDANCE)
|
||||||
|
|
||||||
|
add_library(llguidance STATIC IMPORTED)
|
||||||
|
set_target_properties(llguidance PROPERTIES IMPORTED_LOCATION ${LLGUIDANCE_PATH}/libllguidance.a)
|
||||||
|
add_dependencies(llguidance llguidance_ext)
|
||||||
|
|
||||||
|
target_include_directories(${TARGET} PRIVATE ${LLGUIDANCE_PATH})
|
||||||
|
set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} llguidance)
|
||||||
|
endif ()
|
||||||
|
|
||||||
target_include_directories(${TARGET} PUBLIC .)
|
target_include_directories(${TARGET} PUBLIC .)
|
||||||
target_compile_features (${TARGET} PUBLIC cxx_std_17)
|
target_compile_features (${TARGET} PUBLIC cxx_std_17)
|
||||||
target_link_libraries (${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads)
|
target_link_libraries (${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue