cmake_minimum_required(VERSION 3.20) # Enforce Clang set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++) project(kappa VERSION 0.1.0 LANGUAGES CXX) 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)