Files
drharness/CMakeLists.txt

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)