cmake_minimum_required(VERSION 4.3)
set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/netbsd-x86_64.cmake")

project(netbsd-cpp)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# clangd finds the compilation database through lspp/.clangd's `bin/`.
set(lspp_bin "${CMAKE_CURRENT_SOURCE_DIR}/lspp/bin")
if(NOT IS_SYMLINK "${lspp_bin}" AND NOT EXISTS "${lspp_bin}")
    file(RELATIVE_PATH lspp_build_dir "${CMAKE_CURRENT_SOURCE_DIR}/lspp" "${CMAKE_BINARY_DIR}")
    file(CREATE_LINK "${lspp_build_dir}" "${lspp_bin}" SYMBOLIC RESULT lspp_bin_status)
    if(NOT lspp_bin_status STREQUAL "0")
        message(WARNING "Could not link lspp/bin: ${lspp_bin_status}")
    endif()
endif()

set(THREADS_PREFER_PTHREAD_FLAG TRUE)
set(LSPP_CROSS ON)
set(LSPP_LTO OFF)
set(LSPP_JEMALLOC OFF)


add_subdirectory(lspp)
add_subdirectory(apps)
