пакет python — pip: правильный способ компиляции кода, который зависит от libclang

Я строю библиотеку Python, которую я хочу установить через pip. Процесс установки требует компиляции файла cpp, и этот файл cpp зависит от libclang (в частности, он включает некоторые заголовочные файлы clang-c и должен быть связан с libclang.so).

Я предполагаю, что у конечного пользователя установлен clang ++. Однако я не знаю, где находится эта установка. Например, когда я установил clang ++ локально, хотя он установил все заголовки и нужную мне библиотеку, если я просто скомпилировал пустой файл C ++, который имеет

#include <clang-c/CXCompilationDatabase.h>

Это не найдет это. Мне нужно явно указать путь через аргумент командной строки или CPLUS_INCLUDE_PATH,

Теперь мне нужен какой-то способ для сценария, который вызывает pip, чтобы найти эти заголовки. Я, очевидно, могу попросить пользователя установить CPLUS_INCLUDE_PATH а также LD_LIBRARY_PATH включать пути к clang ++ перед запуском процесса установки, но это выглядит ужасно. Я могу добавить заголовки и библиотеку в свой пакет, но тогда я бы предпочел, чтобы он строился на основе версии, которую имеет пользователь. Есть ли способ найти установку clang ++, если она у пользователя (или, по крайней мере, если она была установлена ​​через apt-get или другой менеджер пакетов?), Или в целом, как правильно решить эту проблему при построении pip пакет?

2

Решение

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

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


По вопросам рекламы [email protected]