cmake_minimum_required(VERSION 3.18)

project(syslite VERSION 0.1.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Compile-time configuration (no runtime config dependencies)
set(SYSLITE_UNIT_DIR "/etc/syslite/services" CACHE STRING "Service unit file directory")
set(SYSLITE_DEFAULT_TARGET "multi-user.target" CACHE STRING "Default boot target")
set(SYSLITE_TTY_COUNT 3 CACHE STRING "Number of TTYs to spawn")

configure_file(config.h.in ${CMAKE_BINARY_DIR}/config.h)

add_executable(syslite
    src/main.cpp
    src/unitfile.cpp
    src/service.cpp
    src/tty.cpp
    src/network.cpp
    src/syslite.cpp
)

target_include_directories(syslite PRIVATE
    ${CMAKE_CURRENT_SOURCE_DIR}/src
    ${CMAKE_BINARY_DIR}
)

target_link_libraries(syslite PRIVATE)

add_executable(netdev src/netdev.cpp)

install(TARGETS syslite DESTINATION sbin)
install(TARGETS netdev DESTINATION sbin)
