11# mtmd
22
3+ find_package (Threads REQUIRED)
4+
35add_library (mtmd
46 mtmd.cpp
57 mtmd-audio.cpp
@@ -9,46 +11,50 @@ add_library(mtmd
911 clip-impl.h
1012 )
1113
12- target_link_libraries (mtmd PRIVATE ggml llama ${CMAKE_THREAD_LIBS_INIT} )
13- target_include_directories (mtmd PUBLIC .)
14+ target_link_libraries (mtmd PUBLIC ggml llama)
15+ target_link_libraries (mtmd PRIVATE Threads::Threads)
16+ target_include_directories (mtmd PUBLIC .)
1417target_include_directories (mtmd PRIVATE ../..)
15- target_compile_features (mtmd PRIVATE cxx_std_17)
18+ target_compile_features (mtmd PRIVATE cxx_std_17)
19+
20+ if (BUILD_SHARED_LIBS )
21+ set_target_properties (mtmd PROPERTIES POSITION_INDEPENDENT_CODE ON )
22+ target_compile_definitions (mtmd PRIVATE LLAMA_BUILD)
23+ target_compile_definitions (mtmd PUBLIC LLAMA_SHARED)
24+ endif ()
25+
26+ set (MTMD_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /mtmd.h)
27+
28+ set_target_properties (mtmd
29+ PROPERTIES
30+ PUBLIC_HEADER "${MTMD_PUBLIC_HEADERS} " )
31+
32+ install (TARGETS mtmd LIBRARY PUBLIC_HEADER )
1633
1734# compile the helper separately, to avoid long compile times with miniaudio.h and stb_image.h
1835
19- add_library (mtmd_helper
36+ add_library (mtmd-helper STATIC
2037 mtmd-helper.cpp
2138 mtmd-helper.h
2239 )
2340
24- target_link_libraries (mtmd_helper PRIVATE ggml llama mtmd ${CMAKE_THREAD_LIBS_INIT} )
25- target_include_directories (mtmd_helper PUBLIC .)
26- target_include_directories (mtmd_helper PRIVATE ./vendor)
27- target_include_directories (mtmd_helper PRIVATE ../..)
28- target_compile_features (mtmd_helper PRIVATE cxx_std_17)
41+ target_link_libraries (mtmd-helper PRIVATE mtmd Threads::Threads)
42+ target_include_directories (mtmd-helper PUBLIC .)
43+ target_include_directories (mtmd-helper PRIVATE ../..)
44+ target_compile_features (mtmd-helper PRIVATE cxx_std_17)
2945
3046if (BUILD_SHARED_LIBS )
31- set_target_properties (mtmd PROPERTIES POSITION_INDEPENDENT_CODE ON )
32- target_compile_definitions (mtmd PRIVATE LLAMA_SHARED LLAMA_BUILD)
33- target_link_libraries (mtmd PRIVATE ggml llama ${CMAKE_THREAD_LIBS_INIT} )
34- set_target_properties (mtmd PROPERTIES PUBLIC_HEADER "mtmd.h" )
35- install (TARGETS mtmd LIBRARY PUBLIC_HEADER )
36-
37- set_target_properties (mtmd_helper PROPERTIES POSITION_INDEPENDENT_CODE ON )
38- target_compile_definitions (mtmd_helper PRIVATE LLAMA_SHARED LLAMA_BUILD)
39- target_link_libraries (mtmd_helper PRIVATE ggml llama mtmd ${CMAKE_THREAD_LIBS_INIT} )
40- set_target_properties (mtmd_helper PROPERTIES PUBLIC_HEADER "mtmd-helper.h" )
41- install (TARGETS mtmd_helper LIBRARY PUBLIC_HEADER )
47+ set_target_properties (mtmd-helper PROPERTIES POSITION_INDEPENDENT_CODE ON )
4248endif ()
4349
4450if (NOT MSVC )
4551 # for stb_image.h and miniaudio.h
46- target_compile_options (mtmd_helper PRIVATE -Wno-cast-qual)
52+ target_compile_options (mtmd-helper PRIVATE -Wno-cast-qual)
4753endif ()
4854
49- if (TARGET BUILD_INFO)
50- add_dependencies (mtmd BUILD_INFO)
51- add_dependencies (mtmd_helper BUILD_INFO)
55+ if (TARGET BUILD_INFO)
56+ add_dependencies (mtmd BUILD_INFO)
57+ add_dependencies (mtmd-helper BUILD_INFO)
5258endif ()
5359
5460add_executable (llama-llava-cli deprecation-warning.cpp)
@@ -57,8 +63,8 @@ add_executable(llama-minicpmv-cli deprecation-warning.cpp)
5763add_executable (llama-qwen2vl-cli deprecation-warning.cpp)
5864
5965set (TARGET llama-mtmd-cli)
60- add_executable (${TARGET} mtmd-cli.cpp)
61- set_target_properties (${TARGET} PROPERTIES OUTPUT_NAME llama-mtmd-cli)
62- install (TARGETS ${TARGET} RUNTIME)
63- target_link_libraries (${TARGET} PRIVATE common mtmd mtmd_helper ${CMAKE_THREAD_LIBS_INIT} )
66+ add_executable (${TARGET} mtmd-cli.cpp)
67+ set_target_properties (${TARGET} PROPERTIES OUTPUT_NAME llama-mtmd-cli)
68+ install (TARGETS ${TARGET} RUNTIME)
69+ target_link_libraries (${TARGET} PRIVATE common mtmd mtmd-helper Threads::Threads )
6470target_compile_features (${TARGET} PRIVATE cxx_std_17)
0 commit comments