more docs for the build.rs file
This commit is contained in:
parent
00f708a30d
commit
6629a11f73
@ -8,21 +8,31 @@ fn main() {
|
|||||||
let manifest_path = PathBuf::from(&manifest_dir);
|
let manifest_path = PathBuf::from(&manifest_dir);
|
||||||
let lib_cfg_dir = "../lib/cfg/csp";
|
let lib_cfg_dir = "../lib/cfg/csp";
|
||||||
let libcsp_path = "../lib/libcsp";
|
let libcsp_path = "../lib/libcsp";
|
||||||
|
|
||||||
|
// This helper structure will take care of the majority of work to compile libcsp using the
|
||||||
|
// cc crate.
|
||||||
let mut csp_builder = Builder::new(PathBuf::from(libcsp_path), PathBuf::from(&out_dir));
|
let mut csp_builder = Builder::new(PathBuf::from(libcsp_path), PathBuf::from(&out_dir));
|
||||||
|
// A lot of spam we are not interested in usually.
|
||||||
csp_builder.compiler_warnings = false;
|
csp_builder.compiler_warnings = false;
|
||||||
|
|
||||||
// We always re-generate the header file.
|
// We always re-generate the header file.
|
||||||
generate_autoconf_header_file(manifest_path.clone(), &csp_builder.cfg)
|
generate_autoconf_header_file(manifest_path.clone(), &csp_builder.cfg)
|
||||||
.expect("generating header file failed");
|
.expect("generating header file failed");
|
||||||
|
|
||||||
// Copy the file to lib/csp/cfg as well for binding generation.
|
// Copy the file to lib/csp/cfg as well for binding generation.
|
||||||
std::fs::copy(
|
std::fs::copy(
|
||||||
manifest_path.join("autoconfig.h"),
|
manifest_path.join("autoconfig.h"),
|
||||||
PathBuf::from(&lib_cfg_dir).join("autoconfig.h"),
|
PathBuf::from(&lib_cfg_dir).join("autoconfig.h"),
|
||||||
)
|
)
|
||||||
.expect("copying autoconfig.h failed");
|
.expect("copying autoconfig.h failed");
|
||||||
|
|
||||||
|
// This file is required for the compile-time configuration of libcsp-rust.
|
||||||
csp_builder
|
csp_builder
|
||||||
.generate_autoconf_rust_file(manifest_path)
|
.generate_autoconf_rust_file(manifest_path)
|
||||||
.expect("generating autoconfig.rs failed");
|
.expect("generating autoconfig.rs failed");
|
||||||
|
|
||||||
csp_builder.compile().expect("compiling libcsp failed");
|
csp_builder.compile().expect("compiling libcsp failed");
|
||||||
|
|
||||||
// If we change the libcsp build configuration, we need to re-run the build.
|
// If we change the libcsp build configuration, we need to re-run the build.
|
||||||
println!("cargo::rerun-if-changed=build.rs");
|
println!("cargo::rerun-if-changed=build.rs");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user