Как заставить 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 видно, что найдены не те либки. Как это можно исправить?


Ответы (0 шт):