summaryrefslogtreecommitdiffstats
path: root/build.rs
blob: f4f88c9aa1a8a898a690a9aed9f3d2f7b9d349b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::env;
use std::fs::File;
use std::io::Write;
use std::path::Path;
use std::process::Command;

fn main() {
    let out_dir = env::var("OUT_DIR").unwrap();
    let dest_path = Path::new(&out_dir).join("gnvim_version.rs");
    let mut f = File::create(&dest_path).unwrap();

    let mut cmd = Command::new("git");
    cmd.arg("describe").arg("--always").arg("--tags");

    let version = cmd.output().unwrap();

    if !version.status.success() {
        panic!("Failed to get version from git");
    }

    let mut version_str = String::from_utf8(version.stdout).unwrap();
    version_str.pop();

    f.write_all(
        format!("const VERSION: &str = \"{}\";", version_str)
            .into_bytes()
            .as_slice(),
    )
    .unwrap();
}