234 lines
6.8 KiB
Markdown
234 lines
6.8 KiB
Markdown
PKGCONF(1)
|
||
|
||
; SPDX-FileCopyrightText: 2022 pkgconf authors
|
||
; SPDX-License-Identifier: ISC
|
||
|
||
# NAME
|
||
|
||
pkgconf - a system for configuring build dependency information
|
||
|
||
# SYNOPSIS
|
||
|
||
*pkgconf* [_options_] [_list of modules_]
|
||
|
||
# DESCRIPTION
|
||
|
||
*pkgconf* is a program which helps to configure compiler and linker flags for
|
||
development libraries. This allows build systems to detect other dependencies
|
||
and use them with the system toolchain.
|
||
|
||
# GENERAL OPTIONS
|
||
|
||
*--version*
|
||
Display the supported pkg-config version and exit.
|
||
|
||
*--atleast-pkgconfig-version*=_VERSION_
|
||
Exit with error if we do not support the requested pkg-config version.
|
||
|
||
*--errors-to-stdout*
|
||
Print all errors on the main output stream instead of the error output
|
||
stream.
|
||
|
||
*--silence-errors*
|
||
Do not display any errors at all.
|
||
|
||
*--list-all*
|
||
Walk all directories listed in the _PKG_CONFIG_PATH_ environmental variable
|
||
and display information on packages which have registered information there.
|
||
|
||
*--simulate*
|
||
Simulates resolving a dependency graph based on the requested modules on
|
||
the command line. Dumps a series of trees denoting pkgconf's resolver state.
|
||
|
||
*--no-cache*
|
||
Skip caching packages when they are loaded into the internal resolver.
|
||
This may result in an alternate dependency graph being computed.
|
||
|
||
*--ignore-conflicts*
|
||
Ignore ‘Conflicts’ rules in modules.
|
||
|
||
*--env-only*
|
||
Learn about pkgconf's configuration strictly from environmental variables.
|
||
|
||
*--validate* _package ..._
|
||
Validate specific ‘.pc’ files for correctness.
|
||
|
||
*--maximum-traverse-depth*=_DEPTH_
|
||
Impose a limit on the allowed depth in the dependency graph. For example,
|
||
a depth of 2 will restrict the resolver from acting on child dependencies
|
||
of modules added to the resolver's solution.
|
||
|
||
*--static*
|
||
Compute a deeper dependency graph and use compiler/linker flags intended
|
||
for static linking.
|
||
|
||
*--shared*
|
||
Compute a simple dependency graph that is only suitable for shared linking.
|
||
|
||
*--pure*
|
||
Treats the computed dependency graph as if it were pure. This is mainly
|
||
intended for use with the *--static* flag.
|
||
|
||
*--no-provides*
|
||
Ignore ‘Provides’ rules in modules when resolving dependencies.
|
||
|
||
*--with-path*=_PATH_
|
||
Adds a new module search path to pkgconf's dependency resolver. Paths added
|
||
in this way are given preference before other paths.
|
||
|
||
*--define-prefix*
|
||
Attempts to determine the prefix variable to use for CFLAGS and LIBS entry
|
||
relocations. This is mainly useful for platforms where framework SDKs are
|
||
relocatable, such as Windows.
|
||
|
||
*--dont-define-prefix*
|
||
Disables the ‘define-prefix’ feature.
|
||
|
||
*--prefix-variable*=_VARIABLE_
|
||
Sets the ‘prefix’ variable used by the ‘define-prefix’ feature.
|
||
|
||
*--relocate*=_PATH_
|
||
Relocates a path using the pkgconf_path_relocate API. This is mainly used
|
||
by the testsuite to provide a guaranteed interface to the system's path
|
||
relocation backend.
|
||
|
||
*--dont-relocate-paths*
|
||
Disables the path relocation feature.
|
||
|
||
# MODULE-SPECIFIC OPTIONS
|
||
|
||
*--atleast-version*=_VERSION_
|
||
Exit with error if a module's version is less than the specified version.
|
||
|
||
*--exact-version*=_VERSION_
|
||
Exit with error if a module's version is not exactly the specified version.
|
||
|
||
*--max-version*=_VERSION_
|
||
Exit with error if a module's version is greater than the specified
|
||
version.
|
||
|
||
*--exists*
|
||
Exit with a non-zero result if the dependency resolver was unable to find
|
||
all of the requested modules.
|
||
|
||
*--uninstalled*
|
||
Exit with a non-zero result if the dependency resolver uses an
|
||
‘uninstalled’ module as part of its solution.
|
||
|
||
*--no-uninstalled*
|
||
Forbids the dependency resolver from considering 'uninstalled' modules as
|
||
part of a solution.
|
||
|
||
# QUERY-SPECIFIC OPTIONS
|
||
|
||
*--cflags*, *--cflags-only-I*, *--cflags-only-other*
|
||
Display either all CFLAGS, only *-I* CFLAGS or only CFLAGS that are not
|
||
*-I*.
|
||
|
||
*--libs*, *--libs-only-L*, *--libs-only-l*, *--libs-only-other*
|
||
Display either all linker flags, only *-L* linker flags, only *-l* linker
|
||
flags or only linker flags that are not *-L* or *-l*.
|
||
|
||
*--keep-system-cflags*, *--keep-system-libs*
|
||
Keep CFLAGS or linker flag fragments that would be filtered due to being
|
||
included by default in the compiler.
|
||
|
||
*--define-variable*=_VARNAME_=_VALUE_
|
||
Define _VARNAME_ as _VALUE_. Variables are used in query output, and some
|
||
modules' results may change based on the presence of a variable definition.
|
||
|
||
*--print-variables*
|
||
Print all seen variables for a module to the output channel.
|
||
|
||
*--print-provides*
|
||
Print all relevant ‘Provides’ entries for a module to the output channel.
|
||
|
||
*--variable*=_VARNAME_
|
||
Print the value of _VARNAME_.
|
||
|
||
*--print-requires*, *--print-requires-private*
|
||
Print the modules included in either the Requires field or the
|
||
Requires.private field.
|
||
|
||
*--digraph*
|
||
Dump the dependency resolver's solution as a graphviz ‘dot’ file. This can
|
||
be used with graphviz to visualize module interdependencies.
|
||
|
||
*--path*
|
||
Display the filenames of the ‘.pc’ files used by the dependency resolver for
|
||
a given dependency set.
|
||
|
||
*--env*=_VARNAME_
|
||
Print the requested values as variable declarations in a similar format as
|
||
the *env*(1) command.
|
||
|
||
*--fragment-filter*=_TYPES_
|
||
Filter the fragment lists for the specified types.
|
||
|
||
*--modversion*
|
||
Print the version of the queried module.
|
||
|
||
# ENVIRONMENT
|
||
|
||
_PKG_CONFIG_PATH_
|
||
List of secondary directories where ‘.pc’ files are looked up.
|
||
|
||
_PKG_CONFIG_LIBDIR_
|
||
List of primary directories where ‘.pc’ files are looked up.
|
||
|
||
_PKG_CONFIG_SYSROOT_DIR_
|
||
‘sysroot’ directory, will be prepended to every path defined in
|
||
PKG_CONFIG_PATH. Useful for cross compilation.
|
||
|
||
_PKG_CONFIG_TOP_BUILD_DIR_
|
||
Provides an alternative setting for the ‘pc_top_builddir’ global variable.
|
||
|
||
_PKG_CONFIG_PURE_DEPGRAPH_
|
||
If set, enables the same behaviour as the *--pure* flag.
|
||
|
||
_PKG_CONFIG_SYSTEM_INCLUDE_PATH_
|
||
List of paths that are considered system include paths by the toolchain.
|
||
This is a pkgconf-specific extension.
|
||
|
||
_PKG_CONFIG_SYSTEM_LIBRARY_PATH_
|
||
List of paths that are considered system library paths by the toolchain.
|
||
This is a pkgconf-specific extension.
|
||
|
||
_PKG_CONFIG_DISABLE_UNINSTALLED_
|
||
If set, enables the same behaviour as the *--no-uninstalled* flag.
|
||
|
||
_PKG_CONFIG_LOG_
|
||
‘logfile’ which is used for dumping audit information concerning installed
|
||
module versions.
|
||
|
||
_PKG_CONFIG_DEBUG_SPEW_
|
||
If set, enables additional debug logging. The format of the debug log
|
||
messages is implementation-specific.
|
||
|
||
_PKG_CONFIG_DONT_RELOCATE_PATHS_
|
||
If set, disables the path relocation feature.
|
||
|
||
_PKG_CONFIG_MSVC_SYNTAX_
|
||
If set, uses MSVC syntax for fragments.
|
||
|
||
_PKG_CONFIG_FDO_SYSROOT_RULES_
|
||
If set, follow the sysroot prefixing rules that freedesktop.org pkg-config
|
||
uses.
|
||
|
||
_DESTDIR_
|
||
If set to _PKG_CONFIG_SYSROOT_DIR_, assume that
|
||
_PKG_CONFIG_FDO_SYSROOT_RULES_ is set.
|
||
|
||
# EXAMPLES
|
||
|
||
Displaying the CFLAGS of a package:
|
||
|
||
```
|
||
$ pkgconf --cflags foo
|
||
-fPIC -I/usr/include/foo
|
||
```
|
||
|
||
# SEE ALSO
|
||
|
||
*pc*(5), *pkg.m4*(7)
|