Используйте Boost в проекте pybind11 cmakePython

Программы на Python
Anonymous
Используйте Boost в проекте pybind11 cmake

Сообщение Anonymous »

Я только что клонировал https://github.com/pybind/scikit_build_example, который является отличным шаблоном для проекта, сочетающего Python и C++ с pybind11. Действие Github создает колеса (для Windows, Linux, MacOS) и загружает их в PyPI прямо из коробки.
Это мой CMakeLists.txt, где я отметил мои изменения с помощью (нового).

Код: Выделить всё

# Require CMake 3.15+ (matching scikit-build-core) Use new versions of all
# policies up to CMake 3.27
cmake_minimum_required(VERSION 3.15...3.27)

# Scikit-build-core sets these values for you, or you can just hard-code the
# name and version.
project(
${SKBUILD_PROJECT_NAME}
VERSION ${SKBUILD_PROJECT_VERSION}
LANGUAGES CXX)

# Find the module development requirements (requires FindPython from 3.17 or
# scikit-build-core's built-in backport)
find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
find_package(pybind11 CONFIG REQUIRED)

find_package(Boost REQUIRED) # (new)

# Add a library using FindPython's tooling (pybind11 also provides a helper like
# this)
python_add_library(_core MODULE src/main.cpp WITH_SOABI)
target_link_libraries(_core PRIVATE pybind11::headers)

target_link_libraries(_core PRIVATE Boost::Graph) # (new)

# This is passing in the version as a define just as an example
target_compile_definitions(_core PRIVATE VERSION_INFO=${PROJECT_VERSION})

# The install directory is the output (wheel) directory
install(TARGETS _core DESTINATION scikit_build_example)
Моя цель — включить в этот проект библиотеку Boost Graph. Как я могу этого добиться?
Я пробовал https://stackoverflow.com/a/41130107, а также https://stackoverflow.com/a/75473931/17726525, но он не работает.
Я получаю эту ошибку в своем действии Github:

Код: Выделить всё

   -- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /tmp/tmpcl8lpajm/build
*** Building project with Ninja...
ninja: error: '/home/runner/work/test_scikit_build_example/test_scikit_build_example/boost/boost/lib/libboost_graph.so', needed by '_core.cpython-37m-x86_64-linux-gnu.so', missing and no known rule to make it
Изменить: что мне нужно изменить в существующем pybind/scikit_build_example, чтобы добавить к нему библиотеку Boost Graph и чтобы действия Github, особенно создание кросс-платформенного колеса , продолжаем работать?

Подробнее здесь: https://stackoverflow.com/questions/789 ... ke-project

Вернуться в «Python»