cmake_minimum_required(VERSION 3.16)
project(C2SYS VERSION 1.0.0 LANGUAGES CXX)

# ====================================================================
# C2SYS - 联合作战指挥环境任务自主规划软件系统
# 构建配置
# ====================================================================

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()

# --- 全局编译选项 ---
add_compile_options(-Wall -Wextra -pedantic)
if (NOT MSVC)
    add_compile_options(-Werror=return-type)
endif()

# --- 头文件路径 ---
include_directories(
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)

# --- 源文件列表 ---
set(SOURCES
    src/main.cpp
    src/app.cpp
)

set(HEADERS
    include/app.hpp
    include/config.hpp
)

# --- 主程序目标 ---
add_executable(${PROJECT_NAME}
    ${SOURCES}
    ${HEADERS}
)

target_include_directories(${PROJECT_NAME} PRIVATE
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
    $<INSTALL_INTERFACE:include>
)

# --- 测试目标 ---
add_executable(${PROJECT_NAME}_test
    tests/basic_test.cpp
    src/app.cpp
)

target_include_directories(${PROJECT_NAME}_test PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/include
)

# --- 安装规则 ---
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
install(DIRECTORY include/ DESTINATION include)
