cmake_minimum_required(VERSION 3.22)
project(metal_kompanion_mcp LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

option(KOM_ENABLE_PG "Enable Postgres-backed DAL support" ON)

set(KOM_HAVE_PG OFF)
if (KOM_ENABLE_PG)
  find_package(PostgreSQL QUIET)
  find_package(pqxx QUIET)
  if (PostgreSQL_FOUND AND pqxx_FOUND)
    set(KOM_HAVE_PG ON)
  endif()
endif()

if (KOM_HAVE_PG)
  message(STATUS "kom_dal: Postgres support enabled (HAVE_PG)")
else()
  message(STATUS "kom_dal: Postgres support disabled (pqxx/libpq not found)")
endif()

set(KOM_HAVE_PG ${KOM_HAVE_PG} CACHE INTERNAL "kom_dal has Postgres backend")

# Placeholder: find Qt and qtmcp when available
# find_package(Qt6 COMPONENTS Core Network REQUIRED)
# find_package(qtmcp REQUIRED)

add_subdirectory(src/dal)

add_executable(kom_mcp
    src/main.cpp
)
target_include_directories(kom_mcp PRIVATE src)
target_link_libraries(kom_mcp PRIVATE kom_dal)

install(TARGETS kom_mcp RUNTIME DESTINATION bin)

option(BUILD_TESTS "Build tests" ON)
if (BUILD_TESTS)
  enable_testing()
  add_subdirectory(tests)
endif()
