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/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
)
target_include_directories(kappa PRIVATE include)
