set(HEADERS "") set(SOURCES module.cpp core_bindings.cpp math_bindings.cpp ) # Use pybind11 to add the python module pybind11_add_module(uLib_python module.cpp core_bindings.cpp math_bindings.cpp) # Link against our C++ libraries target_link_libraries(uLib_python PRIVATE ${PACKAGE_LIBPREFIX}Core ${PACKAGE_LIBPREFIX}Math ) # Include directories from Core and Math are automatically handled if target_include_directories were set appropriately, # but we might need to manually include them if they aren't INTERFACE includes. target_include_directories(uLib_python PRIVATE ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR} ) # Install uLib_python within the uLib install target install(TARGETS uLib_python EXPORT "${PROJECT_NAME}Targets" RUNTIME DESTINATION ${INSTALL_BIN_DIR} COMPONENT bin LIBRARY DESTINATION ${INSTALL_LIB_DIR} COMPONENT lib ARCHIVE DESTINATION ${INSTALL_LIB_DIR} COMPONENT lib ) # --- Python Tests ---------------------------------------------------------- # if(BUILD_TESTING) find_package(Python3 COMPONENTS Interpreter REQUIRED) add_test(NAME pybind_general COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testing/pybind_test.py) set_tests_properties(pybind_general PROPERTIES ENVIRONMENT "PYTHONPATH=$:${PROJECT_SOURCE_DIR}/src/Python") add_test(NAME pybind_core COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testing/core_pybind_test.py) set_tests_properties(pybind_core PROPERTIES ENVIRONMENT "PYTHONPATH=$:${PROJECT_SOURCE_DIR}/src/Python") add_test(NAME pybind_math COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testing/math_pybind_test.py) set_tests_properties(pybind_math PROPERTIES ENVIRONMENT "PYTHONPATH=$:${PROJECT_SOURCE_DIR}/src/Python") endif()