From: Adrien Gallouët Date: Tue, 17 Feb 2026 07:36:45 +0000 (+0100) Subject: build : cleanup library linking logic (#19665) X-Git-Tag: gguf-v0.18.0~96 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=65cede7c700a71180216777bbb107fa254ba9f7b;p=pkg%2Fggml%2Fsources%2Fllama.cpp build : cleanup library linking logic (#19665) Signed-off-by: Adrien Gallouët --- diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index b6b984d50..27ca335be 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -5,7 +5,6 @@ find_package(Threads REQUIRED) llama_add_compile_flags() # Build info header -# if(EXISTS "${PROJECT_SOURCE_DIR}/.git") set(GIT_DIR "${PROJECT_SOURCE_DIR}/.git") @@ -110,29 +109,16 @@ if (BUILD_SHARED_LIBS) 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 @@ -154,8 +140,10 @@ if (LLAMA_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)