##// END OF EJS Templates
packaging: isolate invocation of WiX to own function...
packaging: isolate invocation of WiX to own function Like we did for Inno, we want to split out the building of Mercurial from invoking the packaging tool so that we can introduce an alternate build mechanism. As part of this refactor, there are inconsequential changes to file layouts. Before, some shared files such as the WiX binaries and merge modules would be installed under build/. Now, they are installed under build/wix-*. This is to keep implementation simpler. But it also helps keep build state more isolated. Differential Revision: https://phab.mercurial-scm.org/D8474

File last commit:

r45207:97c10b15 default
r45257:11bd68a9 default
Show More
build.rs
61 lines | 1.5 KiB | application/rls-services+xml | RustLexer
Raphaël Gomès
rust-re2: add wrapper for calling Re2 from Rust...
r44786 // build.rs
//
// Copyright 2020 Raphaël Gomès <rgomes@octobus.net>
//
// This software may be used and distributed according to the terms of the
// GNU General Public License version 2 or any later version.
#[cfg(feature = "with-re2")]
use cc;
Raphaël Gomès
rust: add option of static linking a local Re2 install...
r45207 /// Uses either the system Re2 install as a dynamic library or the provided
/// build as a static library
Raphaël Gomès
rust-re2: add wrapper for calling Re2 from Rust...
r44786 #[cfg(feature = "with-re2")]
fn compile_re2() {
Raphaël Gomès
rust: add option of static linking a local Re2 install...
r45207 use cc;
use std::path::Path;
use std::process::exit;
let msg = r"HG_RE2_PATH must be one of `system|<path to build source clone of Re2>`";
let re2 = match std::env::var_os("HG_RE2_PATH") {
None => {
eprintln!("{}", msg);
exit(1)
}
Some(v) => {
if v == "system" {
None
} else {
Some(v)
}
}
};
let mut options = cc::Build::new();
options
Raphaël Gomès
rust-re2: add wrapper for calling Re2 from Rust...
r44786 .cpp(true)
.flag("-std=c++11")
Raphaël Gomès
rust: add option of static linking a local Re2 install...
r45207 .file("src/re2/rust_re2.cpp");
if let Some(ref source) = re2 {
options.include(Path::new(source));
};
options.compile("librustre.a");
Raphaël Gomès
rust-re2: add wrapper for calling Re2 from Rust...
r44786
Raphaël Gomès
rust: add option of static linking a local Re2 install...
r45207 if let Some(ref source) = &re2 {
// Link the local source statically
println!(
"cargo:rustc-link-search=native={}",
Path::new(source).join(Path::new("obj")).display()
);
println!("cargo:rustc-link-lib=static=re2");
} else {
println!("cargo:rustc-link-lib=re2");
}
Raphaël Gomès
rust-re2: add wrapper for calling Re2 from Rust...
r44786 }
fn main() {
#[cfg(feature = "with-re2")]
compile_re2();
}