# Copyright (c) 2025 Jakub Juszczakiewicz
# All rights reserved.

cmake_minimum_required(VERSION 3.5)
project(kit-mirror-scgi C)

set(SOURCE_FILES
  src/main.c
  src/tcp.c
  src/unix.c
  src/mimedb.c
  src/version.c
  src/common.c
  src/xattr.c
  src/strs.c
)

set(XATTR_OS "NONE" CACHE STRING "OS (Linux/FreeBSD) with xattr support")

set(WITH_TESTS TRUE CACHE BOOL true)

if (XATTR_OS STREQUAL "Linux")
add_definitions(-DXATTR_LINUX)
add_definitions(-DXATTR_OS=Linux)
elseif(XATTR_OS STREQUAL "FreeBSD")
add_definitions(-DXATTR_FREEBSD)
add_definitions(-DXATTR_OS=FreeBSD)
endif()

set(LOGS_SUPPORT False CACHE BOOL "Add (debug) logging support")
set(FORCE_MALLOC False CACHE BOOL "Force malloc instead of alloca")
set(NEED_ALLOCA_INCLUDE False CACHE BOOL "Force include alloca.h")

if (${LOGS_SUPPORT})
add_definitions(-DHAVE_LOGS)
endif()

if (${FORCE_MALLOC})
add_definitions(-DFORCE_MALLOC)
endif()

if (${NEED_ALLOCA_INCLUDE})
add_definitions(-DNEED_ALLOCA_INCLUDE)
endif()

add_executable(${PROJECT_NAME} ${SOURCE_FILES})
install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)

if (${WITH_TESTS})
  include(CTest)
  add_subdirectory(tests)
endif()