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

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

# ============================================
# 头文件目录
# ============================================
include_directories(${CMAKE_SOURCE_DIR}/include)

# ============================================
# 主程序可执行文件
# ============================================
add_executable(book_manager
    src/main.cpp
    src/app.cpp
    src/book.cpp
)

target_include_directories(book_manager PRIVATE
    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
)

# ============================================
# 测试可执行文件（使用标准库 assert）
# ============================================
add_executable(basic_test
    tests/basic_test.cpp
    src/app.cpp
    src/book.cpp
)

target_include_directories(basic_test PRIVATE
    $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
)
