Мне требуется libffi для сборки моего проекта C++. Проблема в том, что не существует готового скрипта для поиска libffi, а ffi.h находится в странных местах в зависимости от версии библиотеки и дистрибутива Linux.
Это моя попытка:
# Look for the header file.
Find_Path(LIBFFI_INCLUDE_DIR NAMES ffi.h)
Mark_As_Advanced(LIBFFI_INCLUDE_DIR)
# Look for the library.
Find_Library(LIBFFI_LIBRARY NAMES
ffi
)
Mark_As_Advanced(LIBFFI_LIBRARY)
# handle the QUIETLY and REQUIRED arguments and set LIBFFI_FOUND to TRUE
# if all listed variables are TRUE
Include(FindPackageHandleStandardArgs)
Find_Package_Handle_Standard_Args(libffi DEFAULT_MSG
LIBFFI_LIBRARY LIBFFI_INCLUDE_DIR)
If(LIBFFI_FOUND)
SET(LIBFFI_LIBRARIES ${LIBFFI_LIBRARY})
SET(LIBFFI_INCLUDE_DIRS ${LIBFFI_INCLUDE_DIR})
Endif(LIBFFI_FOUND)
Но это явно не работает, потому что Find_Path() не выполняет рекурсивный поиск. Как это сделать лучше?
Я пытался использовать модуль pkg-config CMake, но pkg-config тоже не может его найти.
[ethon@Fleckstation Paper]$ pkg-config --cflags libffi Пакет libffi не найден в пути поиска pkg-config. Возможно, вам следует добавить каталог, содержащий `libffi.pc', в переменную окружения PKG_CONFIG_PATH. Пакет 'libffi' не найден
Спасибо!