cmake_minimum_required(VERSION 3.15)
project(asbm_julia LANGUAGES CXX)

# Standalone CMake for the Julia binding — does not require pybind11.
# Compiles the C++ core sources directly, same strategy as the R binding's Makevars.

set(CORE_DIR "${CMAKE_SOURCE_DIR}/../../src")

add_library(asbm_julia SHARED
    src/libasbm_julia.cpp
    ${CORE_DIR}/MCMC_core.cpp
    ${CORE_DIR}/MCMC_proposals.cpp
    ${CORE_DIR}/MCMC_bookkeeping.cpp
    ${CORE_DIR}/helpers.cpp
    ${CORE_DIR}/fit_result.cpp)

target_include_directories(asbm_julia PRIVATE ${CORE_DIR})
target_compile_definitions(asbm_julia PRIVATE
    MCMC_CORE_NO_PYBIND
    $<$<CXX_COMPILER_ID:MSVC>:_USE_MATH_DEFINES>)
target_compile_features(asbm_julia PRIVATE cxx_std_17)
set_target_properties(asbm_julia PROPERTIES POSITION_INDEPENDENT_CODE ON)

# Install to deps/lib/ relative to the prefix (deps/ is passed as --prefix from build.jl)
install(TARGETS asbm_julia
    RUNTIME DESTINATION lib COMPONENT julia_binding
    LIBRARY DESTINATION lib COMPONENT julia_binding)
