Struct system_deps::Library
source · 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: String
Name of the library
source: Source
From 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: String
library version
statik: bool
library is statically linked
Implementations§
source§impl Library
impl Library
sourcepub fn from_internal_pkg_config<P>(
pkg_config_dir: P,
lib: &str,
version: &str,
) -> Result<Self, BuildInternalClosureError>
pub fn from_internal_pkg_config<P>( pkg_config_dir: P, 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.pc
file is locatedlib
: the name of the library to look forversion
: the minimum version oflib
required
§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")
});
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Library
impl RefUnwindSafe for Library
impl Send for Library
impl Sync for Library
impl Unpin for Library
impl UnwindSafe for Library
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more