[][src]Struct cmake::Config

pub struct Config { /* fields omitted */ }

Builder style configuration for a pending CMake build.

Methods

impl Config[src]

pub fn new<P: AsRef<Path>>(path: P) -> Config[src]

Creates a new blank set of configuration to build the project specified at the path path.

pub fn generator<T: AsRef<OsStr>>(&mut self, generator: T) -> &mut Config[src]

Sets the build-tool generator (-G) for this compilation.

pub fn cflag<P: AsRef<OsStr>>(&mut self, flag: P) -> &mut Config[src]

Adds a custom flag to pass down to the C compiler, supplementing those that this library already passes.

pub fn cxxflag<P: AsRef<OsStr>>(&mut self, flag: P) -> &mut Config[src]

Adds a custom flag to pass down to the C++ compiler, supplementing those that this library already passes.

pub fn define<K, V>(&mut self, k: K, v: V) -> &mut Config where
    K: AsRef<OsStr>,
    V: AsRef<OsStr>, 
[src]

Adds a new -D flag to pass to cmake during the generation step.

pub fn register_dep(&mut self, dep: &str) -> &mut Config[src]

Registers a dependency for this compilation on the native library built by Cargo previously.

This registration will modify the CMAKE_PREFIX_PATH environment variable for the build system generation step.

pub fn target(&mut self, target: &str) -> &mut Config[src]

Sets the target triple for this compilation.

This is automatically scraped from $TARGET which is set for Cargo build scripts so it's not necessary to call this from a build script.

pub fn no_build_target(&mut self, no_build_target: bool) -> &mut Config[src]

Disables the target option for this compilation.

pub fn host(&mut self, host: &str) -> &mut Config[src]

Sets the host triple for this compilation.

This is automatically scraped from $HOST which is set for Cargo build scripts so it's not necessary to call this from a build script.

pub fn out_dir<P: AsRef<Path>>(&mut self, out: P) -> &mut Config[src]

Sets the output directory for this compilation.

This is automatically scraped from $OUT_DIR which is set for Cargo build scripts so it's not necessary to call this from a build script.

pub fn profile(&mut self, profile: &str) -> &mut Config[src]

Sets the CMAKE_BUILD_TYPE=build_type variable.

By default, this value is automatically inferred from Rust's compilation profile as follows:

  • if opt-level=0 then CMAKE_BUILD_TYPE=Debug,
  • if opt-level={1,2,3} and:
    • debug=false then CMAKE_BUILD_TYPE=Release
    • otherwise CMAKE_BUILD_TYPE=RelWithDebInfo
  • if opt-level={s,z} then CMAKE_BUILD_TYPE=MinSizeRel

pub fn static_crt(&mut self, static_crt: bool) -> &mut Config[src]

Configures whether the /MT flag or the /MD flag will be passed to msvc build tools.

This option defaults to false, and affect only msvc targets.

pub fn build_arg<A: AsRef<OsStr>>(&mut self, arg: A) -> &mut Config[src]

Add an argument to the final cmake build step

pub fn env<K, V>(&mut self, key: K, value: V) -> &mut Config where
    K: AsRef<OsStr>,
    V: AsRef<OsStr>, 
[src]

Configure an environment variable for the cmake processes spawned by this crate in the build step.

pub fn build_target(&mut self, target: &str) -> &mut Config[src]

Sets the build target for the final cmake build step, this will default to "install" if not specified.

pub fn uses_cxx11(&mut self) -> &mut Config[src]

Alters the default target triple on OSX to ensure that c++11 is available. Does not change the target triple if it is explicitly specified.

This does not otherwise affect any CXX flags, i.e. it does not set -std=c++11 or -stdlib=libc++.

pub fn always_configure(&mut self, always_configure: bool) -> &mut Config[src]

Forces CMake to always run before building the custom target.

In some cases, when you have a big project, you can disable subsequents runs of cmake to make cargo build faster.

pub fn very_verbose(&mut self, value: bool) -> &mut Config[src]

Sets very verbose output.

pub fn build(&mut self) -> PathBuf[src]

Run this configuration, compiling the library with all the configured options.

This will run both the build system generator command as well as the command to build the library.

Auto Trait Implementations

impl Send for Config

impl Sync for Config

Blanket Implementations

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]