summaryrefslogtreecommitdiff
path: root/cli/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/build.rs')
-rw-r--r--cli/build.rs29
1 files changed, 25 insertions, 4 deletions
diff --git a/cli/build.rs b/cli/build.rs
index 6435f0225..4819988e9 100644
--- a/cli/build.rs
+++ b/cli/build.rs
@@ -104,6 +104,28 @@ fn ts_version() -> String {
.collect::<String>()
}
+fn git_commit_hash() -> String {
+ if let Ok(output) = std::process::Command::new("git")
+ .arg("rev-list")
+ .arg("-1")
+ .arg("HEAD")
+ .output()
+ {
+ if output.status.success() {
+ std::str::from_utf8(&output.stdout[..7])
+ .unwrap()
+ .to_string()
+ } else {
+ // When not in git repository
+ // (e.g. when the user install by `cargo install deno`)
+ "UNKNOWN".to_string()
+ }
+ } else {
+ // When there is no git command for some reason
+ "UNKNOWN".to_string()
+ }
+}
+
fn main() {
// Don't build V8 if "cargo doc" is being run. This is to support docs.rs.
if env::var_os("RUSTDOCFLAGS").is_some() {
@@ -114,6 +136,7 @@ fn main() {
// op_fetch_asset::trace_serializer();
println!("cargo:rustc-env=TS_VERSION={}", ts_version());
+ println!("cargo:rustc-env=GIT_COMMIT_HASH={}", git_commit_hash());
println!(
"cargo:rustc-env=DENO_WEB_LIB_PATH={}",
deno_web::get_declaration().display()
@@ -123,10 +146,8 @@ fn main() {
deno_fetch::get_declaration().display()
);
- println!(
- "cargo:rustc-env=TARGET={}",
- std::env::var("TARGET").unwrap()
- );
+ println!("cargo:rustc-env=TARGET={}", env::var("TARGET").unwrap());
+ println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap());
let c = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap());
let o = PathBuf::from(env::var_os("OUT_DIR").unwrap());