CMakeLists.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. # mtmd
  2. find_package(Threads REQUIRED)
  3. add_library(mtmd
  4. mtmd.cpp
  5. mtmd-audio.cpp
  6. mtmd.h
  7. mtmd-helper.cpp
  8. mtmd-helper.h
  9. clip.cpp
  10. clip.h
  11. clip-impl.h
  12. clip-model.h
  13. clip-graph.h
  14. models/models.h
  15. models/cogvlm.cpp
  16. models/conformer.cpp
  17. models/glm4v.cpp
  18. models/internvl.cpp
  19. models/kimivl.cpp
  20. models/llama4.cpp
  21. models/llava.cpp
  22. models/minicpmv.cpp
  23. models/pixtral.cpp
  24. models/qwen2vl.cpp
  25. models/qwen3vl.cpp
  26. models/siglip.cpp
  27. models/whisper-enc.cpp
  28. models/mobilenetv5.cpp
  29. models/youtuvl.cpp
  30. )
  31. set_target_properties(mtmd PROPERTIES
  32. VERSION ${LLAMA_INSTALL_VERSION}
  33. SOVERSION 0
  34. MACHO_CURRENT_VERSION 0 # keep macOS linker from seeing oversized version number
  35. )
  36. target_link_libraries (mtmd PUBLIC ggml llama)
  37. target_link_libraries (mtmd PRIVATE Threads::Threads)
  38. target_include_directories(mtmd PUBLIC .)
  39. target_include_directories(mtmd PRIVATE ../..)
  40. target_include_directories(mtmd PRIVATE ../../vendor)
  41. target_compile_features (mtmd PRIVATE cxx_std_17)
  42. if (BUILD_SHARED_LIBS)
  43. set_target_properties (mtmd PROPERTIES POSITION_INDEPENDENT_CODE ON)
  44. target_compile_definitions(mtmd PRIVATE LLAMA_BUILD)
  45. target_compile_definitions(mtmd PUBLIC LLAMA_SHARED)
  46. endif()
  47. set(MTMD_PUBLIC_HEADERS
  48. ${CMAKE_CURRENT_SOURCE_DIR}/mtmd.h
  49. ${CMAKE_CURRENT_SOURCE_DIR}/mtmd-helper.h
  50. )
  51. set_target_properties(mtmd
  52. PROPERTIES
  53. PUBLIC_HEADER "${MTMD_PUBLIC_HEADERS}")
  54. install(TARGETS mtmd LIBRARY PUBLIC_HEADER)
  55. if (NOT MSVC)
  56. # for stb_image.h and miniaudio.h
  57. target_compile_options(mtmd PRIVATE -Wno-cast-qual)
  58. endif()
  59. if (TARGET BUILD_INFO)
  60. add_dependencies(mtmd BUILD_INFO)
  61. add_dependencies(mtmd-helper BUILD_INFO)
  62. endif()
  63. # if mtmd is linked against common, we throw an error
  64. if (TARGET mtmd)
  65. get_target_property(libs mtmd LINK_LIBRARIES)
  66. if (libs AND "common" IN_LIST libs)
  67. message(FATAL_ERROR "mtmd is designed to be a public library.\n"
  68. "It must not link against common")
  69. endif()
  70. endif()
  71. add_executable(llama-llava-cli deprecation-warning.cpp)
  72. add_executable(llama-gemma3-cli deprecation-warning.cpp)
  73. add_executable(llama-minicpmv-cli deprecation-warning.cpp)
  74. add_executable(llama-qwen2vl-cli deprecation-warning.cpp)
  75. set(TARGET llama-mtmd-cli)
  76. add_executable (${TARGET} mtmd-cli.cpp)
  77. set_target_properties (${TARGET} PROPERTIES OUTPUT_NAME llama-mtmd-cli)
  78. if(LLAMA_TOOLS_INSTALL)
  79. install(TARGETS ${TARGET} RUNTIME)
  80. endif()
  81. target_link_libraries (${TARGET} PRIVATE common mtmd Threads::Threads)
  82. target_compile_features(${TARGET} PRIVATE cxx_std_17)