mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-06-14 19:11:04 +00:00
bd4e108bb0
- Factor the YUL crate out of `revive-solidity`. - `revive-solidity` is in reality not a Solidity implementation but the revive solidity compiler driver (`resolc`). By renaming we not only get this straight but also a binary with the same name as the crate which should be less confusing. --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
31 lines
891 B
Rust
31 lines
891 B
Rust
//! The resolc compiler version.
|
|
|
|
use serde::Deserialize;
|
|
use serde::Serialize;
|
|
|
|
/// The resolc compiler version.
|
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
|
pub struct Version {
|
|
/// The long version string.
|
|
pub long: String,
|
|
/// The short `semver`.
|
|
pub default: semver::Version,
|
|
/// The LLVM version string.
|
|
pub llvm: semver::Version,
|
|
}
|
|
|
|
impl Default for Version {
|
|
fn default() -> Self {
|
|
let default = semver::Version::parse(env!("CARGO_PKG_VERSION")).expect("Always valid");
|
|
let commit = env!("GIT_COMMIT_HASH");
|
|
let (llvm_major, llvm_minor, llvm_patch) = inkwell::support::get_llvm_version();
|
|
let llvm = semver::Version::new(llvm_major as u64, llvm_minor as u64, llvm_patch as u64);
|
|
|
|
Self {
|
|
long: format!("{default}+commit.{commit}.llvm-{llvm}"),
|
|
default,
|
|
llvm,
|
|
}
|
|
}
|
|
}
|