cmake_minimum_required(VERSION 3.18)
project(pGraphCMake LANGUAGES C)

find_package(Python3 REQUIRED COMPONENTS Interpreter)
include(PDynamoPython)
include(PDynamoTests)
include(PDynamoInstall)

set(PYTHON_ROOT_DIR ${CMAKE_BINARY_DIR}/python)
set(PY_OUTPUT_DIR   ${PYTHON_ROOT_DIR}/pGraph)

file(MAKE_DIRECTORY ${PYTHON_ROOT_DIR})
file(MAKE_DIRECTORY ${PY_OUTPUT_DIR})

pd_copy_python_package(
    "${CMAKE_CURRENT_SOURCE_DIR}/pGraph"
    "pGraph"
    "${PYTHON_ROOT_DIR}"
    ""
    PGRAPH_COPIED_PY_FILES
)

message(STATUS "Copied pGraph files      : ${PGRAPH_COPIED_PY_FILES}")
message(STATUS "pGraph python root dir   : ${PYTHON_ROOT_DIR}")
message(STATUS "pGraph python output dir : ${PY_OUTPUT_DIR}")

pd_add_import_tests(
    "${CMAKE_CURRENT_SOURCE_DIR}/tests"
    "${PYTHON_ROOT_DIR}"
    "${PY_OUTPUT_DIR}"
    "test_import_pgraph"
    "test_import_all_pgraph_modules"
)

pd_install_python_package(
    "${CMAKE_CURRENT_SOURCE_DIR}/pGraph"
    "pGraph"
)

add_custom_target(check_pgraph
    COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure
)
