Ensure minimum rustc version in a build script. r=nalexander (#326)

Printing out failure to meet rustc version helps users during
setup with a helpful message if using an older rustc.
Rust version checking from http://stackoverflow.com/a/36607492.
This commit is contained in:
Jordan Santell 2017-02-17 12:04:45 -08:00 committed by GitHub
parent 896d7f8f88
commit ec2bbb8e83
2 changed files with 30 additions and 0 deletions

View file

@ -8,6 +8,10 @@ authors = [
] ]
name = "mentat" name = "mentat"
version = "0.4.0" version = "0.4.0"
build = "build/version.rs"
[build-dependencies]
rustc_version = "0.1.7"
[dependencies] [dependencies]
clap = "2.19.3" clap = "2.19.3"

26
build/version.rs Normal file
View file

@ -0,0 +1,26 @@
// Copyright 2016 Mozilla
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use
// this file except in compliance with the License. You may obtain a copy of the
// License at http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software distributed
// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
// CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.
extern crate rustc_version;
use std::io::{self, Write};
use std::process::exit;
use rustc_version::version_matches;
/// MIN_VERSION should be changed when there's a new minimum version of rustc required
/// to build the project.
static MIN_VERSION: &'static str = ">= 1.15.1";
fn main() {
if !version_matches(MIN_VERSION) {
writeln!(&mut io::stderr(), "Mentat requires rustc {}", MIN_VERSION).unwrap();
exit(1);
}
}