59 lines
2.3 KiB
CMake
59 lines
2.3 KiB
CMake
set(HEADERS "")
|
|
|
|
set(SOURCES
|
|
module.cpp
|
|
core_bindings.cpp
|
|
math_bindings.cpp
|
|
math_filters_bindings.cpp
|
|
)
|
|
|
|
# Use pybind11 to add the python module
|
|
pybind11_add_module(uLib_python module.cpp core_bindings.cpp math_bindings.cpp math_filters_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=$<TARGET_FILE_DIR:uLib_python>:${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=$<TARGET_FILE_DIR:uLib_python>:${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=$<TARGET_FILE_DIR:uLib_python>:${PROJECT_SOURCE_DIR}/src/Python")
|
|
|
|
add_test(NAME pybind_math_filters
|
|
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testing/math_filters_test.py)
|
|
set_tests_properties(pybind_math_filters PROPERTIES
|
|
ENVIRONMENT "PYTHONPATH=$<TARGET_FILE_DIR:uLib_python>:${PROJECT_SOURCE_DIR}/src/Python")
|
|
endif()
|