forked from extern/nushell
Remove build.rs and nu-build (#2282)
This commit is contained in:
@ -1,16 +0,0 @@
|
||||
[package]
|
||||
authors = ["The Nu Project Contributors"]
|
||||
description = "Core build system for nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-build"
|
||||
version = "0.17.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
lazy_static = "1.4.0"
|
||||
serde = {version = "1.0.114", features = ["derive"]}
|
||||
serde_json = "1.0.55"
|
||||
toml = "0.5.6"
|
@ -1,80 +0,0 @@
|
||||
use lazy_static::lazy_static;
|
||||
use serde::Deserialize;
|
||||
use std::collections::BTreeMap;
|
||||
use std::collections::HashMap;
|
||||
use std::collections::HashSet;
|
||||
use std::env;
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::sync::Mutex;
|
||||
|
||||
lazy_static! {
|
||||
static ref WORKSPACES: Mutex<BTreeMap<String, &'static Path>> = Mutex::new(BTreeMap::new());
|
||||
}
|
||||
|
||||
// got from https://github.com/mitsuhiko/insta/blob/b113499249584cb650150d2d01ed96ee66db6b30/src/runtime.rs#L67-L88
|
||||
|
||||
fn get_cargo_workspace(manifest_dir: &str) -> Result<Option<&Path>, Box<dyn std::error::Error>> {
|
||||
let mut workspaces = WORKSPACES.lock()?;
|
||||
if let Some(rv) = workspaces.get(manifest_dir) {
|
||||
Ok(Some(rv))
|
||||
} else {
|
||||
#[derive(Deserialize)]
|
||||
struct Manifest {
|
||||
workspace_root: String,
|
||||
}
|
||||
let output = std::process::Command::new(env!("CARGO"))
|
||||
.arg("metadata")
|
||||
.arg("--format-version=1")
|
||||
.current_dir(manifest_dir)
|
||||
.output()?;
|
||||
let manifest: Manifest = serde_json::from_slice(&output.stdout)?;
|
||||
let path = Box::leak(Box::new(PathBuf::from(manifest.workspace_root)));
|
||||
workspaces.insert(manifest_dir.to_string(), path.as_path());
|
||||
Ok(workspaces.get(manifest_dir).cloned())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
struct Feature {
|
||||
#[allow(unused)]
|
||||
description: String,
|
||||
enabled: bool,
|
||||
}
|
||||
|
||||
pub fn build() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let input = env::var("CARGO_MANIFEST_DIR")?;
|
||||
|
||||
let all_on = env::var("NUSHELL_ENABLE_ALL_FLAGS").is_ok();
|
||||
let flags: HashSet<String> = env::var("NUSHELL_ENABLE_FLAGS")
|
||||
.map(|s| s.split(',').map(|s| s.to_string()).collect())
|
||||
.unwrap_or_else(|_| HashSet::new());
|
||||
|
||||
if all_on && !flags.is_empty() {
|
||||
println!(
|
||||
"cargo:warning=Both NUSHELL_ENABLE_ALL_FLAGS and NUSHELL_ENABLE_FLAGS were set. You don't need both."
|
||||
);
|
||||
}
|
||||
|
||||
let workspace = match get_cargo_workspace(&input)? {
|
||||
// If the crate is being downloaded from crates.io, it won't have a workspace root, and that's ok
|
||||
None => return Ok(()),
|
||||
Some(workspace) => workspace,
|
||||
};
|
||||
|
||||
let path = Path::new(&workspace).join("features.toml");
|
||||
|
||||
// If the crate is being downloaded from crates.io, it won't have a features.toml, and that's ok
|
||||
if !path.exists() {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let toml: HashMap<String, Feature> = toml::from_str(&std::fs::read_to_string(path)?)?;
|
||||
|
||||
for (key, value) in toml.iter() {
|
||||
if value.enabled || all_on || flags.contains(key) {
|
||||
println!("cargo:rustc-cfg={}", key);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
@ -111,7 +111,6 @@ optional = true
|
||||
version = "0.23.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
||||
[dev-dependencies]
|
||||
quickcheck = "0.9"
|
||||
|
@ -28,4 +28,3 @@ serde_yaml = "0.8"
|
||||
toml = "0.5.6"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -22,4 +22,3 @@ serde = {version = "1.0.114", features = ["derive"]}
|
||||
serde_json = "1.0.55"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -37,4 +37,3 @@ serde_yaml = "0.8"
|
||||
toml = "0.5.6"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -18,4 +18,3 @@ serde = {version = "1.0.114", features = ["derive"]}
|
||||
termcolor = "1.1.0"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -22,4 +22,3 @@ indexmap = {version = "1.4.0", features = ["serde-1"]}
|
||||
tempfile = "3.1.0"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -20,4 +20,3 @@ itertools = "0.9.0"
|
||||
num-traits = "0.2.12"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -22,4 +22,3 @@ pretty-hex = "0.1.1"
|
||||
rawkey = "0.1.2"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -20,4 +20,3 @@ surf = "1.0.3"
|
||||
url = "2.1.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -20,4 +20,3 @@ nu-value-ext = {path = "../nu-value-ext", version = "0.17.0"}
|
||||
num-traits = "0.2.12"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -24,4 +24,3 @@ features = ["bundled", "blob"]
|
||||
version = "0.23.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -19,4 +19,3 @@ nu-value-ext = {path = "../nu-value-ext", version = "0.17.0"}
|
||||
semver = "0.10.0"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -18,4 +18,3 @@ nu-source = {path = "../nu-source", version = "0.17.0"}
|
||||
regex = "1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -22,4 +22,3 @@ surf = "1.0.3"
|
||||
url = "2.1.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -24,4 +24,3 @@ features = ["process"]
|
||||
version = "0.1.0-beta.3"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -19,6 +19,5 @@ open = "1.4.0"
|
||||
url = "2.1.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
nu-errors = {version = "0.17.0", path = "../nu-errors"}
|
||||
nu-source = {version = "0.17.0", path = "../nu-source"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -27,4 +27,3 @@ version = "0.1.0-beta.3"
|
||||
features = ["host", "cpu", "memory", "disk", "net", "sensors"]
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -24,4 +24,3 @@ term_size = "0.3.2"
|
||||
url = "2.1.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -19,4 +19,3 @@ nu-value-ext = {path = "../nu-value-ext", version = "0.17.0"}
|
||||
num-traits = "0.2.12"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -24,4 +24,3 @@ features = ["bundled", "blob"]
|
||||
version = "0.23.1"
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
@ -18,4 +18,3 @@ nu-source = {path = "../nu-source", version = "0.17.0"}
|
||||
ptree = {version = "0.2"}
|
||||
|
||||
[build-dependencies]
|
||||
nu-build = {version = "0.17.0", path = "../nu-build"}
|
||||
|
@ -1,3 +0,0 @@
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
nu_build::build()
|
||||
}
|
Reference in New Issue
Block a user