Struct CMakeBuilder

Source
pub struct CMakeBuilder { /* private fields */ }
Expand description

Builder for cloning, configuring, building and installing a CMake project.

Implementations§

Source§

impl CMakeBuilder

Source

pub fn clone(name: &str, url: &str, tag: &str) -> CMakeBuilder

Create a new CMakeBuilder from a git repository.

This function uses the git command therefore it will inherit the git configuration and credentials from your system.

Source

pub fn from(name: &str, path: &Path) -> CMakeBuilder

Create a new CMakeBuilder from an existing cmake project.

Source

pub fn from_build_directory(name: &str, build_path: &Path) -> CMakeBuilder

Create a new CMakeBuilder from an existing cmake build directory.

Source

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

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 CMakeBuilder

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 CMakeBuilder

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 CMakeBuilder

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 CMakeBuilder

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 CMakeBuilder
where 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 CMakeBuilder

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 CMakeBuilder

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 host(&mut self, host: &str) -> &mut CMakeBuilder

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 profile(&mut self, profile: &str) -> &mut CMakeBuilder

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 CMakeBuilder

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 CMakeBuilder

Add an argument to the cmake configure step

Source

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

Add an argument to the final cmake build step

Source

pub fn env<K, V>(&mut self, key: K, value: V) -> &mut CMakeBuilder
where 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 always_configure(&mut self, always_configure: bool) -> &mut CMakeBuilder

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 CMakeBuilder

Sets very verbose output.

Source

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

Specify the build target for the final cmake build step, this will default to all.

Source

pub fn build(&mut self) -> CMakeBuilder

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

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.