cmake_minimum_required(VERSION 3.14) project(ModularApp 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() # Header include directory set(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) # Collect all module source files (excluding main.cpp) file(GLOB_RECURSE LIB_SOURCES src/logger.cpp src/configmanager.cpp src/datamanager.cpp src/utils.cpp src/processor.cpp src/adapter.cpp ) # Main executable add_executable(${PROJECT_NAME} src/main.cpp ${LIB_SOURCES} ) target_include_directories(${PROJECT_NAME} PRIVATE ${INCLUDE_DIR}) # Test executable (uses standard assert, no external testing framework) add_executable(${PROJECT_NAME}_test tests/basic_test.cpp ${LIB_SOURCES} ) target_include_directories(${PROJECT_NAME}_test PRIVATE ${INCLUDE_DIR})