llama_add_compile_flags()
# Build info header
-#
if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
set(GIT_DIR "${PROJECT_SOURCE_DIR}/.git")
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif()
-# TODO: use list(APPEND LLAMA_COMMON_EXTRA_LIBS ...)
-set(LLAMA_COMMON_EXTRA_LIBS build_info)
-set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} cpp-httplib)
+target_link_libraries(${TARGET} PRIVATE
+ build_info
+ cpp-httplib
+)
if (LLAMA_LLGUIDANCE)
include(ExternalProject)
set(LLGUIDANCE_SRC ${CMAKE_BINARY_DIR}/llguidance/source)
set(LLGUIDANCE_PATH ${LLGUIDANCE_SRC}/target/release)
-
- # Set the correct library file extension based on platform
- if (WIN32)
- set(LLGUIDANCE_LIB_NAME "llguidance.lib")
- # Add Windows-specific libraries
- set(LLGUIDANCE_PLATFORM_LIBS
- ws2_32 # Windows Sockets API
- userenv # For GetUserProfileDirectoryW
- ntdll # For NT functions
- bcrypt # For BCryptGenRandom
- )
- else()
- set(LLGUIDANCE_LIB_NAME "libllguidance.a")
- set(LLGUIDANCE_PLATFORM_LIBS "")
- endif()
+ set(LLGUIDANCE_LIB_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}llguidance${CMAKE_STATIC_LIBRARY_SUFFIX}")
ExternalProject_Add(llguidance_ext
GIT_REPOSITORY https://github.com/guidance-ai/llguidance
add_dependencies(llguidance llguidance_ext)
target_include_directories(${TARGET} PRIVATE ${LLGUIDANCE_PATH})
- # Add platform libraries to the main target
- set(LLAMA_COMMON_EXTRA_LIBS ${LLAMA_COMMON_EXTRA_LIBS} llguidance ${LLGUIDANCE_PLATFORM_LIBS})
-endif ()
+ target_link_libraries(${TARGET} PRIVATE llguidance)
+ if (WIN32)
+ target_link_libraries(${TARGET} PRIVATE ws2_32 userenv ntdll bcrypt)
+ endif()
+endif()
-target_link_libraries(${TARGET} PRIVATE ${LLAMA_COMMON_EXTRA_LIBS} PUBLIC llama Threads::Threads)
+target_link_libraries(${TARGET} PUBLIC llama Threads::Threads)