Python — объединение SWIG с CMake и distutils

У меня есть проект SWIG, который я сейчас использую для привязок Python. Я использую CMake в качестве системы сборки и немного запутался, как мне следует работать с SWIG.

В одном разделе документации SWIG, это говорит как использовать SWIG с CMake. До сих пор это то, чем я занимался, и оно работает относительно хорошо, но приводит к некоторым проблемам, когда я пытаюсь установить модуль Python. Я оглянулся на документацию SWIG, и это рекомендует использовать distutils для Python. После более тщательного изучения кажется, что distutils может напрямую обрабатывать файлы интерфейса SWIG.

Они кажутся немного противоречивыми, поскольку методы distutils будут обрабатывать как сборку, так и установку, поэтому использование CMake и distutils приведет к двум системам, создающим привязки. Я надеюсь, что использование distutils сделает установку немного проще, чем обходы, через которые я должен перейти для установки в текущей среде с CMake.

У меня есть два основных вопроса с этим:

  1. Есть ли предпочтительный способ справиться с этим? Документация, которую я нашел, кажется противоречивой.

  2. Является ли использование подхода distutils переносимым между языками? Если я сгенерирую привязки для другого языка, будет ли доступно что-то похожее на distutils для создания и установки привязки для этого языка или мне, возможно, придется встроить эту логику в CMake? Если это так, я бы подумал, что было бы немного грязно, если бы у некоторых языков были привязки, созданные их менеджером пакетов, а другие языки должны были быть в системе CMake. Должны ли мои языковые привязки быть отдельными проектами, которые имеют в качестве зависимостей код C ++ и файлы интерфейса SWIG?

Обновить: Некоторое время назад я собрал пример на Github это демонстрирует использование SWIG и CMake с Python.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector