cmake_minimum_required(VERSION 3.20)

project(linuxSmartie
    VERSION 1.0
    LANGUAGES CXX
)

# Use C++26 (CMake name for c++2c)
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

# Collect sources
file(GLOB SOURCES
    src/*.cpp
    main.cpp
)

# Define executable
add_executable(linuxSmartie ${SOURCES})

# Include directories
target_include_directories(linuxSmartie
    PRIVATE
        ${CMAKE_CURRENT_SOURCE_DIR}/include
)

# Compiler warnings
target_compile_options(linuxSmartie
    PRIVATE
        -O2
        -Wall
        -Wextra
        -Wpedantic
        -Werror
        -fdiagnostics-color=always
)

# Link libraries
target_link_libraries(linuxSmartie
    PRIVATE
        websockets
        z
)

