Как заставить CMake искать библиотеку через pkg-config вне системных каталогов?
Я пытаюсь подключить FFmpeg через pkg-config. Если что, вот здесь обсуждался вопрос о том, как в CMake корректно подключать библиотеки его использующие.
PKG_CONFIG_PATH - переменная, в которой должен содержаться путь к катологу, в котором лежат .pc-файлы.
Вот мой код:
project(TestFFmpeg LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
list(PREPEND CMAKE_PREFIX_PATH /opt)
set(ENV{PKG_CONFIG_PATH} /opt/FFmpeg-430/lib/pkgconfig)
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH OFF)
find_package(PkgConfig REQUIRED)
pkg_check_modules(FFmpeg REQUIRED NO_CMAKE_PATH NO_CMAKE_ENVIRONMENT_PATH
libavformat
libavcodec
libswscale
)
message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}")
message("ENV{PKG_CONFIG_PATH}: $ENV{PKG_CONFIG_PATH}")
message("PKG_CONFIG_FOUND: ${PKG_CONFIG_FOUND}")
message("PKG_CONFIG_EXECUTABLE: ${PKG_CONFIG_FOUND}")
message("PKG_CONFIG_VERSION_STRING: ${PKG_CONFIG_VERSION_STRING}")
message("FFmpeg_FOUND: ${FFmpeg_FOUND}")
message("FFmpeg_LIBRARIES: ${FFmpeg_LIBRARIES}")
message("FFmpeg_INCLUDE_DIRS: ${FFmpeg_INCLUDE_DIRS}")
add_executable(${PROJECT_NAME} main.cpp)
Вот вывод:
CMAKE_PREFIX_PATH: /opt;/opt/Qt/5.15.0/gcc_64
ENV{PKG_CONFIG_PATH}: /opt/FFmpeg-430/lib/pkgconfig
PKG_CONFIG_FOUND: TRUE
PKG_CONFIG_EXECUTABLE: TRUE
PKG_CONFIG_VERSION_STRING: 0.29.1
FFmpeg_FOUND: 1
FFmpeg_LIBRARIES: avformat;avcodec;swscale
FFmpeg_INCLUDE_DIRS: /usr/include/x86_64-linux-gnu
-- Configuring done
-- Generating done
CMake находит, но проблема в том, что находит не то. Я явно указываю на католог с .pc-файлами, но по выводу FFmpeg_INCLUDE_DIRS видно, что найдены не те либки. Как это можно исправить?