cmake_minimum_required(VERSION 3.20) project(versioningcpp CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(SQLite3 REQUIRED) find_package(OpenSSL REQUIRED) add_library(versiond STATIC src/config.cpp src/db.cpp src/store.cpp src/util.cpp src/ingest.cpp src/monitor.cpp src/maintenance.cpp src/recovery.cpp src/restore.cpp src/stats.cpp src/remote.cpp src/sftp_native.cpp src/uploader.cpp src/api.cpp src/cli.cpp src/dbsafe.cpp src/filters.cpp src/diff.cpp src/impl.cpp) target_include_directories(versiond PUBLIC include ${SQLite3_INCLUDE_DIRS}) target_link_libraries(versiond PUBLIC SQLite::SQLite3 OpenSSL::Crypto) add_executable(versiond-cli src/main.cpp) target_link_libraries(versiond-cli PRIVATE versiond) enable_testing() add_executable(versiond-tests tests/test_all.cpp) target_link_libraries(versiond-tests PRIVATE versiond) add_test(NAME all COMMAND versiond-tests)