grafitte
grafitte

Reputation: 21

How to set up CMakeLists.txt to find a .PC file (pkg-config with pkg_search_module) in a non-default path?

I am trying to create a simple project using SDL2 and SDL2_image extension. As SDL2_image doesn't provide official support for Find*.cmake modules, my alternative was to use pkg-config to find those libraries.

However, I built SDL2 and SDL2_image myself and installed them in a custom path (~/Library/SDL2 and ~/Library/SDL2_image).

CMake seems to be able to find SDL2 properly, but it can't find SDL2_image, even if I put the .PC file in the system default path (/usr/share/pkgconfig).

How do I tell CMake to look for a .PC file in a non-default (system) path? I need that to build a simple project using SDL2 and SDL2_image.

I've tried to put the SDL2_image.pc file in the default system path for .PC files (/usr/share/pkgconfig), but it seems not to be changing anything.

find_package(PkgConfig)

# SDL2 can be found and included
pkg_search_module(SDL2 REQUIRED sdl2)

# SDL2_image cannot be found and thus the project doesn't configure/generate.
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)

Error message when running "cmake":

-- Checking for one of the modules 'SDL2_image>=2.0.0'
CMake Error at /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:637 (message):
  None of the required 'SDL2_image>=2.0.0' found
Call Stack (most recent call first):
  CMakeLists.txt:12 (pkg_search_module)

Upvotes: 2

Views: 3883

Answers (1)

dns
dns

Reputation: 2815

Find pkg-config *.pc file, and export the path:

export PKG_CONFIG_PATH="/path/lib/pkgconfig"

Upvotes: 0

Related Questions