cmake_minimum_required(VERSION 3.14)
project(dataflow_system VERSION 1.0.0 LANGUAGES CXX)

# C++17 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# MSVC UTF-8 编译选项
if(MSVC)
    add_compile_options(/utf-8)
endif()

# 头文件目录
set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)

# ============================
# 主程序
# ============================
add_executable(dataflow_main
    src/main.cpp
    src/app.cpp
)
target_include_directories(dataflow_main PRIVATE ${INCLUDE_DIR})

# ============================
# 单元测试
# ============================
add_executable(basic_test
    tests/basic_test.cpp
    src/app.cpp
)
target_include_directories(basic_test PRIVATE ${INCLUDE_DIR})

# 测试目标也可以通过 ctest 运行
enable_testing()
add_test(NAME basic_test COMMAND basic_test)