mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 13:45:20 +00:00
build: Use the crate version when the 'git describe' command failed
In our build-script (build.rs), we won't set the environment variable 'BUILD_VERSION' when the 'git describe' command failed (e.g. when the current source tree does not contain git information). This patch added a fall back path where the default value of 'BUILD_VERSION' is based on the 'cloud-hypervisor' crate version. Fixes: #1669 Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
parent
318ad83509
commit
559d1840d8
@ -24,6 +24,9 @@ vhost_user_net = { path = "vhost_user_net"}
|
|||||||
vmm = { path = "vmm" }
|
vmm = { path = "vmm" }
|
||||||
vmm-sys-util = "0.6.1"
|
vmm-sys-util = "0.6.1"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
clap = { version = "2.33.3", features = ["wrap_help"] }
|
||||||
|
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
vm-memory = { git = "https://github.com/cloud-hypervisor/vm-memory", branch = "ch" }
|
vm-memory = { git = "https://github.com/cloud-hypervisor/vm-memory", branch = "ch" }
|
||||||
|
|
||||||
|
21
build.rs
21
build.rs
@ -3,20 +3,25 @@
|
|||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#[macro_use(crate_version)]
|
||||||
|
extern crate clap;
|
||||||
|
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let git_out = Command::new("git")
|
let mut version = crate_version!().to_string();
|
||||||
.args(&["describe", "--dirty"])
|
|
||||||
.output()
|
if let Ok(git_out) = Command::new("git").args(&["describe", "--dirty"]).output() {
|
||||||
.expect("Expect to get git describe output");
|
if git_out.status.success() {
|
||||||
|
if let Ok(git_out_str) = String::from_utf8(git_out.stdout) {
|
||||||
|
version = git_out_str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This println!() has a special behavior, as it will set the environment
|
// This println!() has a special behavior, as it will set the environment
|
||||||
// variable BUILT_VERSION, so that it can be reused from the binary.
|
// variable BUILT_VERSION, so that it can be reused from the binary.
|
||||||
// Particularly, this is used from src/main.rs to display the exact
|
// Particularly, this is used from src/main.rs to display the exact
|
||||||
// version.
|
// version.
|
||||||
println!(
|
println!("cargo:rustc-env=BUILT_VERSION={}", version);
|
||||||
"cargo:rustc-env=BUILT_VERSION={}",
|
|
||||||
String::from_utf8(git_out.stdout).unwrap()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user