pub struct Build { /* private fields */ }
Implementations§
source§impl Build
impl Build
pub fn new() -> Self
sourcepub fn file<P: AsRef<Path>>(&mut self, p: P) -> &mut Self
pub fn file<P: AsRef<Path>>(&mut self, p: P) -> &mut Self
Add a file which will be compiled
e.g. "foo.s"
sourcepub fn files<P: AsRef<Path>, I: IntoIterator<Item = P>>(
&mut self,
files: I
) -> &mut Self
pub fn files<P: AsRef<Path>, I: IntoIterator<Item = P>>( &mut self, files: I ) -> &mut Self
Set multiple files
sourcepub fn include<P: AsRef<Path>>(&mut self, dir: P) -> &mut Self
pub fn include<P: AsRef<Path>>(&mut self, dir: P) -> &mut Self
Add a directory to the -I
include path
sourcepub fn define<'a, V: Into<Option<&'a str>>>(
&mut self,
var: &str,
val: V
) -> &mut Self
pub fn define<'a, V: Into<Option<&'a str>>>( &mut self, var: &str, val: V ) -> &mut Self
Pre-define a macro with an optional value
sourcepub fn debug(&mut self, enable: bool) -> &mut Self
pub fn debug(&mut self, enable: bool) -> &mut Self
Configures whether the assembler will generate debug information.
This option is automatically scraped from the DEBUG
environment
variable by build scripts (only enabled when the profile is “debug”), so
it’s not required to call this function.
sourcepub fn flag(&mut self, flag: &str) -> &mut Self
pub fn flag(&mut self, flag: &str) -> &mut Self
Add an arbitrary flag to the invocation of the assembler
e.g. "-Fdwarf"
sourcepub fn target(&mut self, target: &str) -> &mut Self
pub fn target(&mut self, target: &str) -> &mut Self
Configures the target this configuration will be compiling for.
This option is automatically scraped from the TARGET
environment
variable by build scripts, so it’s not required to call this function.
sourcepub fn out_dir<P: AsRef<Path>>(&mut self, out_dir: P) -> &mut Self
pub fn out_dir<P: AsRef<Path>>(&mut self, out_dir: P) -> &mut Self
Configures the output directory where all object files and static libraries will be located.
This option is automatically scraped from the OUT_DIR environment variable by build scripts, so it’s not required to call this function.
sourcepub fn archiver<P: AsRef<Path>>(&mut self, archiver: P) -> &mut Self
pub fn archiver<P: AsRef<Path>>(&mut self, archiver: P) -> &mut Self
Configures the tool used to assemble archives.
This option is automatically determined from the target platform or a number of environment variables, so it’s not required to call this function.
sourcepub fn archiver_is_msvc(&mut self, is_msvc: bool) -> &mut Self
pub fn archiver_is_msvc(&mut self, is_msvc: bool) -> &mut Self
Configures the default archiver tool as well as the command syntax.
This option is automatically determined from cfg!(target_env = "msvc")
,
so it’s not required to call this function.
sourcepub fn min_version(
&mut self,
major: usize,
minor: usize,
micro: usize
) -> &mut Self
pub fn min_version( &mut self, major: usize, minor: usize, micro: usize ) -> &mut Self
Set the minimum version required
sourcepub fn compile(&mut self, lib_name: &str) -> Result<(), String>
pub fn compile(&mut self, lib_name: &str) -> Result<(), String>
Run the compiler, generating the file output
The name output should be the base name of the library, without file extension, and without “lib” prefix.
The output file will have target-specific name,
such as lib*.a
(non-MSVC) or *.lib
(MSVC).