40 lines
995 B
CMake
40 lines
995 B
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(drharness LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
find_package(CURL REQUIRED)
|
|
find_package(nlohmann_json REQUIRED)
|
|
|
|
set(TOOL_SOURCES
|
|
tools/shell_tool.cpp
|
|
tools/agent_tool.cpp
|
|
tools/edit_tool.cpp
|
|
tools/file_list_tool.cpp
|
|
tools/file_read_tool.cpp
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
list(REMOVE_ITEM TOOL_SOURCES tools/shell_tool.cpp)
|
|
endif()
|
|
|
|
add_library(drharness_lib
|
|
src/tool_registry.cpp
|
|
src/ollama_client.cpp
|
|
src/harness.cpp
|
|
${TOOL_SOURCES}
|
|
)
|
|
target_include_directories(drharness_lib PUBLIC include tools)
|
|
target_link_libraries(drharness_lib
|
|
PUBLIC nlohmann_json::nlohmann_json
|
|
PRIVATE CURL::libcurl
|
|
)
|
|
target_compile_options(drharness_lib PRIVATE -Wall -Wextra -Wpedantic)
|
|
|
|
add_executable(drharness src/main.cpp)
|
|
target_link_libraries(drharness PRIVATE drharness_lib)
|
|
|
|
install(TARGETS drharness DESTINATION bin)
|