mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-04-22 02:07:55 +00:00
7f81f37e0c
Pre-eliminary support for LLVM releases and resolc binary releases by streamlining the build process for all supported hosts platforms. - Introduce the revive-llvm-builder crate with the revive-llvm builder utilty. - Do not rely on the LLVM dependency in $PATH to decouple the system LLVM installation from the LLVM host dependency. - Fix the emscripten build by decoupling the host and native LLVM dependencies. Thus allowing a single LLVM emscripten release that can be used on any host platform. - An example Dockerfile building an alpine container with a fully statically linked resolc ELF binary. - Remove the Debian builder utilities and workflow.
38 lines
1006 B
Rust
38 lines
1006 B
Rust
//! The revive LLVM builder lock file.
|
|
|
|
use anyhow::Context;
|
|
use std::fs::File;
|
|
use std::io::Read;
|
|
use std::path::PathBuf;
|
|
|
|
use serde::Deserialize;
|
|
use serde::Serialize;
|
|
|
|
/// The default lock file location.
|
|
pub const LLVM_LOCK_DEFAULT_PATH: &str = "LLVM.lock";
|
|
|
|
/// The lock file data.
|
|
///
|
|
/// This file describes the exact reference of the LLVM framework.
|
|
#[derive(Debug, Deserialize, Serialize)]
|
|
pub struct Lock {
|
|
/// The LLVM repository URL.
|
|
pub url: String,
|
|
/// The LLVM repository branch.
|
|
pub branch: String,
|
|
/// The LLVM repository commit reference.
|
|
pub r#ref: Option<String>,
|
|
}
|
|
|
|
impl TryFrom<&PathBuf> for Lock {
|
|
type Error = anyhow::Error;
|
|
|
|
fn try_from(path: &PathBuf) -> Result<Self, Self::Error> {
|
|
let mut config_str = String::new();
|
|
let mut config_file =
|
|
File::open(path).with_context(|| format!("Error opening {:?} file", path))?;
|
|
config_file.read_to_string(&mut config_str)?;
|
|
Ok(toml::from_str(&config_str)?)
|
|
}
|
|
}
|