cmake_minimum_required(VERSION 3.21)
project(dstalk VERSION 0.1.0 LANGUAGES C CXX)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

option(DSTALK_BUILD_GUI "Build the SDL3 GUI frontend" OFF)
option(DSTALK_BUILD_WEB "Build the web UI frontend" OFF)
option(DSTALK_BUILD_TESTS "Build dstalk tests" ON)

add_subdirectory(dstalk_core)
add_subdirectory(dstalk_cli)
# 插件按依赖层级分三个目录 / Plugins split into three directories by dependency tier
add_subdirectory(plugins_base)
add_subdirectory(plugins_middle)
add_subdirectory(plugins_upper)

if(DSTALK_BUILD_GUI)
    add_subdirectory(dstalk_gui)
endif()

if(DSTALK_BUILD_WEB)
    add_subdirectory(dstalk_web)
endif()

if(DSTALK_BUILD_TESTS)
    enable_testing()
    add_subdirectory(tests)
endif()
