cmake_minimum_required(VERSION 3.14) project(memba VERSION 0.1.0 LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) # ── llama.cpp submodule ────────────────────────────────────────── if(NOT EXISTS "${CMAKE_SOURCE_DIR}/llama.cpp/CMakeLists.txt") message(FATAL_ERROR "llama.cpp submodule not initialised.\n" "Run: git submodule update --init --recursive") endif() set(LLAMA_BUILD_TESTS OFF CACHE BOOL "" FORCE) set(LLAMA_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) set(LLAMA_BUILD_SERVER OFF CACHE BOOL "" FORCE) add_subdirectory(llama.cpp) # ── libmemba (shared) ──────────────────────────────────────────── add_library(memba SHARED src/state.cpp) target_include_directories(memba PUBLIC include PRIVATE llama.cpp/include ) target_link_libraries(memba PRIVATE llama) set_target_properties(memba PROPERTIES OUTPUT_NAME memba VERSION ${PROJECT_VERSION} SOVERSION 0 ) # ── memba-cli ──────────────────────────────────────────────────── add_executable(memba-cli src/cli.cpp) target_include_directories(memba-cli PRIVATE include llama.cpp/include ) target_link_libraries(memba-cli PRIVATE memba llama) # ── Install ────────────────────────────────────────────────────── install(TARGETS memba memba-cli LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) install(FILES include/memba/state.h DESTINATION include/memba)