cmake_minimum_required(VERSION 3.20) project(kappa VERSION 0.1.0 LANGUAGES CXX) find_package(Threads REQUIRED) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) # Generate compile_commands.json for clangd set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # --- vcpkg integration --- if(DEFINED ENV{VCPKG_ROOT}) set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "vcpkg toolchain") endif() add_executable(kappa src/main.cpp src/util.cpp src/paths.cpp src/dsl/lexer.cpp src/dsl/parser.cpp src/dsl/system.cpp src/eval/vars.cpp src/cli/diagnostic.cpp src/config/merge.cpp src/config/eval.cpp src/tools/format.cpp src/tools/doctor.cpp src/resolve/plan.cpp src/fetch/fetch.cpp src/fetch/recipe.cpp src/build/build.cpp src/sched/scheduler.cpp src/install/install.cpp src/rebuild/rebuild.cpp src/service/s6.cpp src/service/systemd.cpp src/service/types.cpp src/service/openrc.cpp src/service/dinit.cpp src/service/runit.cpp src/service/install.cpp src/boot/types.cpp src/boot/limine.cpp src/boot/grub.cpp src/boot/install.cpp src/system/activate.cpp ) target_include_directories(kappa PRIVATE include) target_link_libraries(kappa PRIVATE Threads::Threads) target_compile_options(kappa PRIVATE -Wall -Wextra -Wpedantic) install(TARGETS kappa RUNTIME DESTINATION bin)