mirror of
https://github.com/savoirfairelinux/opendht.git
synced 2026-11-08 12:28:42 +00:00
50 lines
1.9 KiB
CMake
50 lines
1.9 KiB
CMake
set(CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
|
set(CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
configure_file(setup.py.in setup.py)
|
|
configure_file(pyproject.toml pyproject.toml COPYONLY)
|
|
configure_file(README.md README.md COPYONLY)
|
|
|
|
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
|
|
|
add_custom_target(python
|
|
COMMAND ${Python3_EXECUTABLE} -m build "${CMAKE_CURRENT_BINARY_DIR}"
|
|
DEPENDS opendht opendht_cpp.pxd opendht.pyx pyproject.toml
|
|
${CURRENT_SOURCE_DIR}/opendht/__init__.py
|
|
${CURRENT_SOURCE_DIR}/opendht/aio.py)
|
|
|
|
install(CODE [[
|
|
if(NOT Python3_EXECUTABLE)
|
|
find_package(Python3 COMPONENTS Interpreter)
|
|
endif()
|
|
if(NOT Python3_EXECUTABLE)
|
|
message(WARNING "Skipping Python package install: Python interpreter not found.")
|
|
else()
|
|
execute_process(
|
|
COMMAND ${Python3_EXECUTABLE} -m pip --version
|
|
OUTPUT_QUIET
|
|
ERROR_QUIET
|
|
RESULT_VARIABLE _pip_check)
|
|
if(NOT _pip_check EQUAL 0)
|
|
message(WARNING "Skipping Python package install: pip not available for ${Python3_EXECUTABLE}.")
|
|
else()
|
|
execute_process(
|
|
COMMAND ${Python3_EXECUTABLE} -m pip install --no-deps --break-system-packages .
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/python
|
|
OUTPUT_VARIABLE _pip_output
|
|
ERROR_VARIABLE _pip_error
|
|
RESULT_VARIABLE _pip_result)
|
|
|
|
if(_pip_result EQUAL 0)
|
|
message(STATUS "Successfully installed Python package")
|
|
message(STATUS "Output: ${_pip_output}")
|
|
else()
|
|
message(WARNING "pip install failed (code: ${_pip_result})\nOutput: ${_pip_output}\nError: ${_pip_error}")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
]])
|
|
if (OPENDHT_TOOLS)
|
|
install(PROGRAMS tools/dhtcluster.py DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME dhtcluster)
|
|
endif()
|