FindPkgConfig¶
A pkg-config module for CMake.
Finds the pkg-config executable and add the
pkg_check_modules() and pkg_search_module()
commands.
In order to find the pkg-config executable, it uses the
PKG_CONFIG_EXECUTABLE variable or the PKG_CONFIG
environment variable first.
- 
pkg_check_modules¶
- Checks for all the given modules. - pkg_check_modules(<PREFIX> [REQUIRED] [QUIET] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] <MODULE> [<MODULE>]*) - When the - REQUIREDargument was set, macros will fail with an error when module(s) could not be found.- When the - QUIETargument is set, no status messages will be printed.- By default, if - CMAKE_MINIMUM_REQUIRED_VERSIONis 3.1 or later, or if- PKG_CONFIG_USE_CMAKE_PREFIX_PATHis set, the- CMAKE_PREFIX_PATH,- CMAKE_FRAMEWORK_PATH, and- CMAKE_APPBUNDLE_PATHcache and environment variables will be added to- pkg-configsearch path. The- NO_CMAKE_PATHand- NO_CMAKE_ENVIRONMENT_PATHarguments disable this behavior for the cache variables and the environment variables, respectively.- It sets the following variables: - PKG_CONFIG_FOUND ... if pkg-config executable was found PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program PKG_CONFIG_VERSION_STRING ... the version of the pkg-config program found (since CMake 2.8.8) - For the following variables two sets of values exist; first one is the common one and has the given PREFIX. The second set contains flags which are given out when - pkg-configwas called with the- --staticoption.- <XPREFIX>_FOUND ... set to 1 if module(s) exist <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l') <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L') <XPREFIX>_LDFLAGS ... all required linker flags <XPREFIX>_LDFLAGS_OTHER ... all other linker flags <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I') <XPREFIX>_CFLAGS ... all required cflags <XPREFIX>_CFLAGS_OTHER ... the other compiler flags - <XPREFIX> = <PREFIX> for common case <XPREFIX> = <PREFIX>_STATIC for static linking - There are some special variables whose prefix depends on the count of given modules. When there is only one module, <PREFIX> stays unchanged. When there are multiple modules, the prefix will be changed to <PREFIX>_<MODNAME>: - <XPREFIX>_VERSION ... version of the module <XPREFIX>_PREFIX ... prefix-directory of the module <XPREFIX>_INCLUDEDIR ... include-dir of the module <XPREFIX>_LIBDIR ... lib-dir of the module - <XPREFIX> = <PREFIX> when |MODULES| == 1, else <XPREFIX> = <PREFIX>_<MODNAME> - A <MODULE> parameter can have the following formats: - {MODNAME} ... matches any version {MODNAME}>={VERSION} ... at least version <VERSION> is required {MODNAME}={VERSION} ... exactly version <VERSION> is required {MODNAME}<={VERSION} ... modules must not be newer than <VERSION> - Examples - pkg_check_modules (GLIB2 glib-2.0) - pkg_check_modules (GLIB2 glib-2.0>=2.10) - Requires at least version 2.10 of glib2 and defines e.g. - GLIB2_VERSION=2.10.3- pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0) - Requires both glib2 and gtk2, and defines e.g. - FOO_glib-2.0_VERSION=2.10.3and- FOO_gtk+-2.0_VERSION=2.8.20- pkg_check_modules (XRENDER REQUIRED xrender) - Defines for example: - XRENDER_LIBRARIES=Xrender;X11`` XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp 
- 
pkg_search_module¶
- Same as - pkg_check_modules(), but instead it checks for given modules and uses the first working one.- pkg_search_module(<PREFIX> [REQUIRED] [QUIET] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] <MODULE> [<MODULE>]*) - Examples - pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2) 
- 
PKG_CONFIG_EXECUTABLE¶
- Path to the pkg-config executable. 
- 
PKG_CONFIG_USE_CMAKE_PREFIX_PATH¶
- Whether - pkg_check_modules()and- pkg_search_module()should add the paths in- CMAKE_PREFIX_PATH,- CMAKE_FRAMEWORK_PATH, and- CMAKE_APPBUNDLE_PATHcache and environment variables to- pkg-configsearch path.- If this variable is not set, this behavior is enabled by default if - CMAKE_MINIMUM_REQUIRED_VERSIONis 3.1 or later, disabled otherwise.
