##// END OF EJS Templates
automation: support building Python 3 MSI installers...
automation: support building Python 3 MSI installers This is very similar to what we just did for Inno. Differential Revision: https://phab.mercurial-scm.org/D8484

File last commit:

r45207:97c10b15 default
r45265:5c1f356b 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();
}