Struct cmake::Config

source ·
pub struct Config { /* private fields */ }
Expand description

Builder style configuration for a pending CMake build.

Implementations§

source§

impl Config

source

pub fn get_profile(&self) -> &str

Return explicitly set profile or infer CMAKE_BUILD_TYPE from Rust’s compilation profile.

  • 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
source

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

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

source

pub fn pic(&mut self, explicit_flag: bool) -> &mut Config

Sets flag for PIC. Otherwise use cc::Build platform default

source

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

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

If unset, this crate will use the CMAKE_GENERATOR environment variable if set. Otherwise, it will guess the best generator to use based on the build target.

source

pub fn generator_toolset<T: AsRef<OsStr>>( &mut self, toolset_name: T ) -> &mut Config

Sets the toolset name (-T) if supported by generator. Can be used to compile with CLang/LLV instead of msvc when Visual Studio generator is selected.

If unset, will use the default toolset of the selected generator.

source

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

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

source

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

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

source

pub fn asmflag<P: AsRef<OsStr>>(&mut self, flag: P) -> &mut Config

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

source

pub fn define<K, V>(&mut self, k: K, v: V) -> &mut Configwhere K: AsRef<OsStr>, V: AsRef<OsStr>,

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

source

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

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.

source

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

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.

source

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

Disables the cmake target option for this compilation.

Note that this isn’t related to the target triple passed to the compiler!

source

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

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.

source

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

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.

source

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

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
source

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

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.

source

pub fn configure_arg<A: AsRef<OsStr>>(&mut self, arg: A) -> &mut Config

Add an argument to the cmake configure step

source

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

Add an argument to the final cmake build step

source

pub fn env<K, V>(&mut self, key: K, value: V) -> &mut Configwhere K: AsRef<OsStr>, V: AsRef<OsStr>,

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

source

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

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

source

pub fn uses_cxx11(&mut self) -> &mut Config

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++.

source

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

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.

source

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

Sets very verbose output.

source

pub fn init_c_cfg(&mut self, c_cfg: Build) -> &mut Config

Initializes the C build configuration.

source

pub fn init_cxx_cfg(&mut self, cxx_cfg: Build) -> &mut Config

Initializes the C++ build configuration.

source

pub fn build(&mut self) -> PathBuf

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§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.