pub struct Library {
pub name: String,
pub source: Source,
pub libs: Vec<InternalLib>,
pub link_paths: Vec<PathBuf>,
pub frameworks: Vec<String>,
pub framework_paths: Vec<PathBuf>,
pub include_paths: Vec<PathBuf>,
pub ld_args: Vec<Vec<String>>,
pub defines: HashMap<String, Option<String>>,
pub version: String,
pub statik: bool,
}Expand description
A system dependency
Fields§
§name: StringName of the library
source: SourceFrom where the library settings have been retrieved
libs: Vec<InternalLib>libraries the linker should link on
link_paths: Vec<PathBuf>directories where the compiler should look for libraries
frameworks: Vec<String>frameworks the linker should link on
framework_paths: Vec<PathBuf>directories where the compiler should look for frameworks
include_paths: Vec<PathBuf>directories where the compiler should look for header files
ld_args: Vec<Vec<String>>flags that should be passed to the linker
defines: HashMap<String, Option<String>>macros that should be defined by the compiler
version: Stringlibrary version
statik: boollibrary is statically linked
Implementations§
Source§impl Library
impl Library
Sourcepub fn wrap_pkg_config<T, R>(
pkg_config_paths: impl PathOrList<T>,
f: impl FnOnce() -> Result<R, Error>,
) -> Result<R, Error>
pub fn wrap_pkg_config<T, R>( pkg_config_paths: impl PathOrList<T>, f: impl FnOnce() -> Result<R, Error>, ) -> Result<R, Error>
Calls a function changing the environment so that pkg-config will try to
look first in the provided path.
Sourcepub fn from_internal_pkg_config<T>(
pkg_config_paths: impl PathOrList<T>,
lib: &str,
version: &str,
) -> Result<Self, BuildInternalClosureError>
pub fn from_internal_pkg_config<T>( pkg_config_paths: impl PathOrList<T>, lib: &str, version: &str, ) -> Result<Self, BuildInternalClosureError>
Create a Library by probing pkg-config on an internal directory.
This helper is meant to be used by Config::add_build_internal closures
after having built the lib to return the library information to system-deps.
This library will be statically linked.
§Arguments
pkg_config_dir: the directory where the library.pcfile is locatedlib: the name of the library to look forversion: the minimum version oflibrequired
§Examples
let mut config = system_deps::Config::new();
config.add_build_internal("mylib", |lib, version| {
// Actually build the library here that fulfills the passed in version requirements
system_deps::Library::from_internal_pkg_config("build-dir",
lib, "1.2.4")
});