Crate pkg_config + + [−] + + [src]
+A build dependency for Cargo libraries to find system artifacts through the
+pkg-config
utility.
This library will shell out to pkg-config
as part of build scripts and
+probe the system to determine how to link to a specified library. The
+Config
structure serves as a method of configuring how pkg-config
is
+invoked in a builder style.
A number of environment variables are available to globally configure how
+this crate will invoke pkg-config
:
-
+
PKG_CONFIG_ALLOW_CROSS
- if this variable is not set, thenpkg-config
+will automatically be disabled for all cross compiles.
+FOO_NO_PKG_CONFIG
- if set, this will disable runningpkg-config
when +probing for the library namedfoo
.
+
There are also a number of environment variables which can configure how a
+library is linked to (dynamically vs statically). These variables control
+whether the --static
flag is passed. Note that this behavior can be
+overridden by configuring explicitly on Config
. The variables are checked
+in the following order:
-
+
FOO_STATIC
- pass--static
for the libraryfoo
+FOO_DYNAMIC
- do not pass--static
for the libraryfoo
+PKG_CONFIG_ALL_STATIC
- pass--static
for all libraries
+PKG_CONFIG_ALL_DYNAMIC
- do not pass--static
for all libraries
+
After running pkg-config
all appropriate Cargo metadata will be printed on
+stdout if the search was successful.
Example
+Find the system library named foo
.
+extern crate pkg_config; + +fn main() { + pkg_config::find_library("foo").unwrap(); +} ++ +
Configure how library foo
is linked to.
+extern crate pkg_config; + +fn main() { + pkg_config::Config::new().statik(true).find("foo").unwrap(); +} ++
Structs
+Config | ++ + | +
Library | ++ + | +
Functions
+find_library | +
+ Simple shortcut for using all default options for finding a library. + + |
+
target_supported | ++ + | +