55 lines
1.4 KiB
CMake
55 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(drharness LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
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/read_multi_modal.cpp
|
|
tools/file_list_tool.cpp
|
|
tools/file_read_tool.cpp
|
|
tools/grep_tool.cpp
|
|
)
|
|
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
list(REMOVE_ITEM TOOL_SOURCES tools/shell_tool.cpp)
|
|
set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++")
|
|
set(CMAKE_SHARED_LINKER_FLAGS "-static-libgcc -static-libstdc++")
|
|
endif()
|
|
|
|
add_library(drharness_lib
|
|
src/encoding.cpp
|
|
src/tool_registry.cpp
|
|
src/ollama_client.cpp
|
|
src/harness.cpp
|
|
src/debug_client.cpp
|
|
src/editor.cpp
|
|
src/skill.cpp
|
|
src/rebase_engine.cpp
|
|
src/utility.cpp
|
|
src/base64_util.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)
|
|
|
|
# Add testing support
|
|
enable_testing()
|
|
add_subdirectory(tests)
|