cmake_minimum_required(VERSION 3.14)
project(ims 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 support
if (MSVC)
    add_compile_options(/utf-8)
endif()

# ---------- Source groups ----------
set(HEADERS
    include/ims_types.hpp
    include/user_manager.hpp
    include/business_manager.hpp
    include/audit_logger.hpp
    include/integration_service.hpp
)

set(SOURCES
    src/ims_types.cpp
    src/user_manager.cpp
    src/business_manager.cpp
    src/audit_logger.cpp
    src/integration_service.cpp
    src/main.cpp
)

# ---------- Main executable ----------
add_executable(ims_main ${SOURCES} ${HEADERS})
target_include_directories(ims_main PRIVATE include)

# ---------- Test executable ----------
add_executable(basic_test
    tests/basic_test.cpp
    ${SOURCES}
    ${HEADERS}
)
target_include_directories(basic_test PRIVATE include)
