From 4526e300964c108681954f976d1caed12c0f92bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Gallou=C3=ABt?= Date: Mon, 16 Feb 2026 11:16:36 +0100 Subject: [PATCH] build : cleanup library linking logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Adrien Gallouët --- common/CMakeLists.txt | 34 +++++++++++----------------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index b6b984d502..27ca335be3 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)