Struct intel_mkl_tool::Library 
source · [−]pub struct Library {
    pub config: Config,
    pub include_dir: PathBuf,
    pub library_dir: PathBuf,
    pub iomp5_static_dir: Option<PathBuf>,
    pub iomp5_dynamic_dir: Option<PathBuf>,
}Expand description
Found MKL library
use std::str::FromStr;
use intel_mkl_tool::{Config, Library};
let cfg = Config::from_str("mkl-static-lp64-iomp").unwrap();
if let Ok(lib) = Library::new(cfg) {
    lib.print_cargo_metadata().unwrap();
}Fields
config: Configinclude_dir: PathBufDirectory where mkl.h and mkl_version.h exists
library_dir: PathBufDirectory where libmkl_core.a or libmkl_core.so exists
iomp5_static_dir: Option<PathBuf>Directory where libiomp5.a or corresponding file exists
- They are not required for 
mkl-*-*-seqandmkl-dynamic-*-iompcases, and then this isNone. - Both static and dynamic dir can be 
Somewhenopenmp-strict-link-typefeature is OFF. 
iomp5_dynamic_dir: Option<PathBuf>Directory where libiomp5.so or corresponding file exists
- They are not required for 
mkl-*-*-seqcases andmkl-static-*-iomp, and then this isNone. - Both static and dynamic dir can be 
Somewhenopenmp-strict-link-typefeature is OFF. 
Implementations
sourceimpl Library
 
impl Library
sourcepub fn pkg_config(config: Config) -> Result<Option<Self>>
 
pub fn pkg_config(config: Config) -> Result<Option<Self>>
Find MKL using pkg-config
This only use the installed prefix obtained by pkg-config --variable=prefix
$ pkg-config --variable=prefix mkl-static-lp64-seq
/opt/intel/mklThen pass it to Self::seek_directory.
Limitation
This will not work for mkl-*-*-iomp configure since libiomp5.{a,so}
will not be found under the prefix directory of MKL.
Please use $MKLROOT environment variable for this case,
see Self::new for detail.
sourcepub fn seek_directory(
    config: Config, 
    root_dir: impl AsRef<Path>
) -> Result<Option<Self>>
 
pub fn seek_directory(
    config: Config, 
    root_dir: impl AsRef<Path>
) -> Result<Option<Self>>
Seek MKL libraries in the given directory.
- This will seek the directory recursively until finding MKL libraries, but do not follow symbolic links.
 - This will not seek directory named 
ia32* - Retuns 
Ok(None)iflibiomp5.{a,so}is not found withmkl-*-*-iompconfigure even if MKL binaries are found. 
sourcepub fn new(config: Config) -> Result<Self>
 
pub fn new(config: Config) -> Result<Self>
Seek MKL in system
This try to find installed MKL in following order:
- Ask to 
pkg-config - Seek the directory specified by 
$MKLROOTenvironment variable - Seek well-known directory
/opt/intelfor LinuxC:/Program Files (x86)/IntelSWTools/andC:/Program Files (x86)/Intel/oneAPI/for Windows
 
pub fn available() -> Vec<Self>
sourcepub fn version(&self) -> Result<(u32, u32, u32)>
 
pub fn version(&self) -> Result<(u32, u32, u32)>
Found MKL version parsed from mkl_version.h
mkl_version.h will define
#define __INTEL_MKL__ 2020
#define __INTEL_MKL_MINOR__ 0
#define __INTEL_MKL_UPDATE__ 1and this corresponds to (2020, 0, 1)
sourcepub fn print_cargo_metadata(&self) -> Result<()>
 
pub fn print_cargo_metadata(&self) -> Result<()>
Print cargo:rustc-link-* metadata to stdout
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Library
impl Send for Library
impl Sync for Library
impl Unpin for Library
impl UnwindSafe for Library
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
    T: ?Sized, 
 
impl<T> BorrowMut<T> for T where
    T: ?Sized, 
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more