Support linking at compile time

This commit is contained in:
Omar Abdulla
2025-07-25 09:37:24 +03:00
parent eacc09fe4f
commit d8017b4ddf
4 changed files with 275 additions and 122 deletions
+21
View File
@@ -9,6 +9,7 @@ use std::{
path::{Path, PathBuf},
};
use alloy_primitives::Address;
use revive_dt_config::Arguments;
use revive_common::EVMVersion;
@@ -158,6 +159,26 @@ where
self
}
pub fn with_library(
mut self,
scope: impl AsRef<Path>,
library_ident: impl AsRef<str>,
library_address: Address,
) -> Self {
self.input
.settings
.libraries
.get_or_insert_with(Default::default)
.entry(scope.as_ref().display().to_string())
.or_default()
.insert(
library_ident.as_ref().to_owned(),
library_address.to_string(),
);
self
}
pub fn try_build(self, solc_path: PathBuf) -> anyhow::Result<CompilerOutput<T::Options>> {
T::new(solc_path).build(CompilerInput {
extra_options: self.extra_options,