Я строю библиотеку 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 пакет?
Задача ещё не решена.