Struct Interface

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

When generating a library with cxx-qt-build, the library may need to export certain flags or headers. These are all specified by this Interface struct, which should be passed to the crate::CxxQtBuilder::library function.

Implementations§

Source§

impl Interface

Source

pub fn define(self, variable: &str, value: Option<&str>) -> Self

Add a compile-time-definition for the C++ code built by this crate and all downstream dependencies

This function will panic if the variable has already been defined with a different value.

Also please note that any definitions added here will only be exported throughout the cargo build. Due to technical limitations, they can not be imported into CMake with the cxxqt_import_crate function.

Source

pub fn initializer(self, path: impl AsRef<Path>) -> Self

Add a C++ file path that will be exported as an initializer to downstream dependencies.

Initializer files will be built into object files, instead of linked into the static library. This way, the static variables and their constructors in this code will not be optimized out by the linker.

Source

pub fn export_include_prefixes<'a>( self, prefixes: impl IntoIterator<Item = &'a str>, ) -> Self

Export all headers with the given prefix to downstream dependencies

Note: This will overwrite any previously specified header_prefixes, including the default header_prefix of this crate.

This function will panic if any of the given prefixes are already exported through the Self::export_include_directory function.

Source

pub fn export_include_directory( self, directory: impl AsRef<Path>, prefix: &str, ) -> Self

Add a directory that will be added as an include directory under the given prefix.

The prefix will automatically be exported (see also: Self::export_include_prefixes)

This function will panic if the given prefix is already exported.

Source

pub fn reexport_dependency(self, link_name: &str) -> Self

Reexport the dependency with the given link name. This will make the dependency available to downstream dependencies.

Specifically it will reexport all include_prefixes of the given dependency as well as any definitions made by that dependency.

Note that the link name may differ from the crate name. Check your dependencies manifest file for the correct link name.

Trait Implementations§

Source§

impl Default for Interface

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.