expose llava methods in libllama.dylib

This commit is contained in:
Damian Stewart 2023-10-14 19:15:35 +02:00
parent 09edb7ecdf
commit 2847ecf2dd
2 changed files with 19 additions and 10 deletions

View file

@ -698,6 +698,7 @@ target_include_directories(llama PUBLIC .)
target_compile_features(llama PUBLIC cxx_std_11) # don't bump
target_link_libraries(llama PRIVATE
ggml
llava
${LLAMA_EXTRA_LIBS}
)
@ -707,6 +708,22 @@ if (BUILD_SHARED_LIBS)
if (LLAMA_METAL)
set_target_properties(llama PROPERTIES RESOURCE "${CMAKE_CURRENT_SOURCE_DIR}/ggml-metal.metal")
endif()
# By default, symbols provided by the sublibs that are not used by mainlib (which is all of them in this case)
# are not used. This changes that.
if (WIN32)
set_target_properties(llama PROPERTIES
LINK_FLAGS "/WHOLEARCHIVE"
)
elseif (APPLE)
set_target_properties(llama PROPERTIES
LINK_FLAGS "-Wl,-all_load"
)
else ()
set_target_properties(llama PROPERTIES
LINK_FLAGS "-Wl,--whole-archive"
)
endif ()
endif()

View file

@ -1,15 +1,7 @@
set(TARGET llava)
if (BUILD_SHARED_LIBS)
add_library(${TARGET} SHARED llava.cpp llava.h clip.cpp clip.h)
set_target_properties(${TARGET} PROPERTIES POSITION_INDEPENDENT_CODE ON)
set_target_properties(${TARGET} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
target_link_libraries(${TARGET} PUBLIC Threads::Threads common llama ggml ${LLAMA_EXTRA_LIBS})
install(TARGETS ${TARGET} LIBRARY)
else()
add_library(${TARGET} llava.cpp llava.h clip.cpp clip.h)
target_link_libraries(${TARGET} PRIVATE common llama ggml ${CMAKE_THREAD_LIBS_INIT})
endif()
add_library(${TARGET} STATIC llava.cpp llava.h clip.cpp clip.h)
target_link_libraries(${TARGET} PRIVATE ${CMAKE_THREAD_LIBS_INIT})
target_include_directories(${TARGET} PUBLIC .)
target_include_directories(${TARGET} PUBLIC ..)