cmake_minimum_required(VERSION 3.10)
project(HeightMeasurementSystem VERSION 1.0.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

# Include directories
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)

# Main executable
add_executable(hsm_main
    src/main.cpp
    src/app.cpp
    src/altitude_calculator.cpp
    src/data_logger.cpp
    src/sensor_simulator.cpp
    src/alert_manager.cpp
)

# Test executable
add_executable(hsm_test
    tests/basic_test.cpp
    src/altitude_calculator.cpp
    src/data_logger.cpp
    src/sensor_simulator.cpp
    src/alert_manager.cpp
)

# Enable testing
enable_testing()
add_test(NAME BasicTest COMMAND hsm_test)