cmake_minimum_required(VERSION 3.20) project(UnifiedIOTest LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Core includes include_directories(include) # Find spdlog and nlohmann_json find_package(spdlog QUIET) find_package(nlohmann_json QUIET) # Minimal FetchContent for missing deps if(NOT nlohmann_json_FOUND) include(FetchContent) FetchContent_Declare(nlohmann_json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz URL_HASH SHA256=d6c65aca6b1ed68e7a182f4757257b107ae403032760ed6ef121c9d55e81757d ) FetchContent_MakeAvailable(nlohmann_json) endif() if(NOT spdlog_FOUND) include(FetchContent) FetchContent_Declare(spdlog GIT_REPOSITORY https://github.com/gabime/spdlog.git GIT_TAG v1.12.0 ) FetchContent_MakeAvailable(spdlog) endif() # Unified IO Test add_executable(unified-io-test src/test_unified_io.cpp src/IntraIO.cpp src/IntraIOManager.cpp src/IOFactory.cpp ) target_link_libraries(unified-io-test PRIVATE nlohmann_json::nlohmann_json PRIVATE spdlog::spdlog PRIVATE pthread )