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
impl Interface
Sourcepub fn define(self, variable: &str, value: Option<&str>) -> Self
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.
Sourcepub fn initializer(self, path: impl AsRef<Path>) -> Self
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.
Sourcepub fn export_include_prefixes<'a>(
self,
prefixes: impl IntoIterator<Item = &'a str>,
) -> Self
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.
Sourcepub fn export_include_directory(
self,
directory: impl AsRef<Path>,
prefix: &str,
) -> Self
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.
Sourcepub fn reexport_dependency(self, link_name: &str) -> Self
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§
Auto Trait Implementations§
impl Freeze for Interface
impl RefUnwindSafe for Interface
impl Send for Interface
impl Sync for Interface
impl Unpin for Interface
impl UnwindSafe for Interface
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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