cmake_minimum_required(VERSION 3.18)

project(enetBind LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

find_package(Python 3.9 COMPONENTS Interpreter Development.Module REQUIRED)

add_subdirectory(external/nanobind)
add_subdirectory(external/enet)

nanobind_add_module(enetBind
        src/main.cpp
)

nanobind_add_stub(
        pyStub
        MODULE enetBind
        OUTPUT enetBind.pyi
        PYTHON_PATH $<TARGET_FILE_DIR:enetBind>
        DEPENDS enetBind
)

target_link_libraries(enetBind PRIVATE enet)
target_include_directories(enetBind PRIVATE ${CMAKE_SOURCE_DIR}/external/nanobind/include)
target_include_directories(enetBind PRIVATE ${CMAKE_SOURCE_DIR}/external/enet/include)

install(TARGETS enetBind
        LIBRARY DESTINATION .
        RUNTIME DESTINATION .
        ARCHIVE DESTINATION .
)
install(TARGETS enetBind DESTINATION ".")
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/enetBind.pyi DESTINATION ".")
