cmake_minimum_required(VERSION 3.18)
project(pyyoga LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(FETCHCONTENT_QUIET OFF)
include(FetchContent)

find_package(pybind11 CONFIG)

if(NOT pybind11_FOUND)
    FetchContent_Declare(
        pybind11
        URL https://github.com/pybind/pybind11/archive/refs/tags/v2.13.6.zip
    )
    FetchContent_MakeAvailable(pybind11)
endif()

FetchContent_Declare(
    yoga
    URL https://github.com/facebook/yoga/archive/refs/tags/v3.2.1.zip
)
FetchContent_MakeAvailable(yoga)

pybind11_add_module(_pyyoga
    src/bindings.cpp
)

target_include_directories(_pyyoga PRIVATE
    ${yoga_SOURCE_DIR}
)

target_link_libraries(_pyyoga PRIVATE yogacore)

target_compile_definitions(_pyyoga PRIVATE
    YG_EXPORT=
)

install(TARGETS _pyyoga LIBRARY DESTINATION pyyoga)
