Add temporarily path to pkg-config within CMake script?

cmake, pkg-config

Solution

This is a known issue and a ticket exists in CMake's bugtracker, but it is backlocked due to lack of developer interest. I guess one has to provide a patch first...

Edit: According to the bugtracker the feature has been implemented and is part of CMake 3.1.

Problem

For external libraries the user can specify a non-standard location by adding the path to the `CMAKE_FLAGS` or by adding `-DMYLIB_ROOT`. Within the CMake script I want to find the library's pkg-config pc file. Because the pc file is not in the standard folder, it is not found by pkg-config with `FindPkgConfig`'s `pkg_search_module`. I tried to add the user-given path to the `PKG_CONFIG_PATH` but it seemed to be ignored: ``` include(FindPkgConfig) set(PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig") pkg_search_module(PKG_MYLIB mylib) if(${PKG_MYLIB_FOUND}) ... ``` When I call pkg-config from the terminal with the modified `PKG_CONFIG_PATH` set, it find the pc file. What am I doing wrong? How can I get `pkg_search_module` working? I'd like to avoid calling pkg-config directly from CMake.

Original source