1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-16 14:08:35 +08:00

Help: Use appropriate list types in FindPkgConfig

This commit is contained in:
Joachim Wuttke (l)
2018-10-10 23:03:31 +02:00
committed by Craig Scott
parent 88ef5737a2
commit 74b3eacdc7

View File

@@ -9,12 +9,14 @@ A ``pkg-config`` module for CMake.
Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`, Finds the ``pkg-config`` executable and adds the :command:`pkg_get_variable`,
:command:`pkg_check_modules` and :command:`pkg_search_module` commands. The :command:`pkg_check_modules` and :command:`pkg_search_module` commands. The
following variables will also be set:: following variables will also be set:
PKG_CONFIG_FOUND ... if pkg-config executable was found ``PKG_CONFIG_FOUND``
PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program if pkg-config executable was found
PKG_CONFIG_VERSION_STRING ... the version of the pkg-config program found ``PKG_CONFIG_EXECUTABLE``
(since CMake 2.8.8) pathname of the pkg-config program
``PKG_CONFIG_VERSION_STRING``
version of pkg-config (since CMake 2.8.8)
#]========================================] #]========================================]
@@ -543,27 +545,36 @@ endmacro()
Each ``<moduleSpec>`` can be either a bare module name or it can be a Each ``<moduleSpec>`` can be either a bare module name or it can be a
module name with a version constraint (operators ``=``, ``<``, ``>``, module name with a version constraint (operators ``=``, ``<``, ``>``,
``<=`` and ``>=`` are supported). The following are examples for a module ``<=`` and ``>=`` are supported). The following are examples for a module
named ``foo`` with various constraints:: named ``foo`` with various constraints:
foo # Any version matches - ``foo`` matches any version.
foo<2 # Only match versions before 2 - ``foo<2`` only matches versions before 2.
foo>=3.1 # Match any version from 3.1 or later - ``foo>=3.1`` matches any version from 3.1 or later.
foo=1.2.3 # Foo must be exactly version 1.2.3 - ``foo=1.2.3`` requires that foo must be exactly version 1.2.3.
The following variables may be set upon return. Two sets of values exist, The following variables may be set upon return. Two sets of values exist,
one for the common case (``<XXX> = <prefix>``) and another for the one for the common case (``<XXX> = <prefix>``) and another for the
information ``pkg-config`` provides when it is called with the ``--static`` information ``pkg-config`` provides when it is called with the ``--static``
option (``<XXX> = <prefix>_STATIC``):: option (``<XXX> = <prefix>_STATIC``)
<XXX>_FOUND ... set to 1 if module(s) exist ``<XXX>_FOUND``
<XXX>_LIBRARIES ... only the libraries (without the '-l') set to 1 if module(s) exist
<XXX>_LINK_LIBRARIES ... the libraries and their absolute paths ``<XXX>_LIBRARIES``
<XXX>_LIBRARY_DIRS ... the paths of the libraries (without the '-L') only the libraries (without the '-l')
<XXX>_LDFLAGS ... all required linker flags ``<XXX>_LINK_LIBRARIES``
<XXX>_LDFLAGS_OTHER ... all other linker flags the libraries and their absolute paths
<XXX>_INCLUDE_DIRS ... the '-I' preprocessor flags (without the '-I') ``<XXX>_LIBRARY_DIRS``
<XXX>_CFLAGS ... all required cflags the paths of the libraries (without the '-L')
<XXX>_CFLAGS_OTHER ... the other compiler flags ``<XXX>_LDFLAGS``
all required linker flags
``<XXX>_LDFLAGS_OTHER``
all other linker flags
``<XXX>_INCLUDE_DIRS``
the '-I' preprocessor flags (without the '-I')
``<XXX>_CFLAGS``
all required cflags
``<XXX>_CFLAGS_OTHER``
the other compiler flags
All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the All but ``<XXX>_FOUND`` may be a :ref:`;-list <CMake Language Lists>` if the
associated variable returned from ``pkg-config`` has multiple values. associated variable returned from ``pkg-config`` has multiple values.
@@ -571,12 +582,16 @@ endmacro()
There are some special variables whose prefix depends on the number of There are some special variables whose prefix depends on the number of
``<moduleSpec>`` given. When there is only one ``<moduleSpec>``, ``<moduleSpec>`` given. When there is only one ``<moduleSpec>``,
``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>`` ``<YYY>`` will simply be ``<prefix>``, but if two or more ``<moduleSpec>``
items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``:: items are given, ``<YYY>`` will be ``<prefix>_<moduleName>``
<YYY>_VERSION ... version of the module ``<YYY>_VERSION``
<YYY>_PREFIX ... prefix directory of the module version of the module
<YYY>_INCLUDEDIR ... include directory of the module ``<YYY>_PREFIX``
<YYY>_LIBDIR ... lib directory of the module prefix directory of the module
``<YYY>_INCLUDEDIR``
include directory of the module
``<YYY>_LIBDIR``
lib directory of the module
Examples Examples