rewrite cross-lang-lto to rmake
This commit is contained in:
parent
e552c168c7
commit
152db2760c
5 changed files with 148 additions and 60 deletions
|
|
@ -42,6 +42,12 @@ pub fn llvm_nm() -> LlvmNm {
|
|||
LlvmNm::new()
|
||||
}
|
||||
|
||||
/// Construct a new `llvm-bcanalyzer` invocation. This assumes that `llvm-bcanalyzer` is available
|
||||
/// at `$LLVM_BIN_DIR/llvm-bcanalyzer`.
|
||||
pub fn llvm_bcanalyzer() -> LlvmBcanalyzer {
|
||||
LlvmBcanalyzer::new()
|
||||
}
|
||||
|
||||
/// A `llvm-readobj` invocation builder.
|
||||
#[derive(Debug)]
|
||||
#[must_use]
|
||||
|
|
@ -84,12 +90,20 @@ pub struct LlvmNm {
|
|||
cmd: Command,
|
||||
}
|
||||
|
||||
/// A `llvm-bcanalyzer` invocation builder.
|
||||
#[derive(Debug)]
|
||||
#[must_use]
|
||||
pub struct LlvmBcanalyzer {
|
||||
cmd: Command,
|
||||
}
|
||||
|
||||
crate::macros::impl_common_helpers!(LlvmReadobj);
|
||||
crate::macros::impl_common_helpers!(LlvmProfdata);
|
||||
crate::macros::impl_common_helpers!(LlvmFilecheck);
|
||||
crate::macros::impl_common_helpers!(LlvmObjdump);
|
||||
crate::macros::impl_common_helpers!(LlvmAr);
|
||||
crate::macros::impl_common_helpers!(LlvmNm);
|
||||
crate::macros::impl_common_helpers!(LlvmBcanalyzer);
|
||||
|
||||
/// Generate the path to the bin directory of LLVM.
|
||||
#[must_use]
|
||||
|
|
@ -250,6 +264,12 @@ impl LlvmAr {
|
|||
self
|
||||
}
|
||||
|
||||
/// Extract archive members back to files.
|
||||
pub fn extract(&mut self) -> &mut Self {
|
||||
self.cmd.arg("x");
|
||||
self
|
||||
}
|
||||
|
||||
/// Provide an output, then an input file. Bundled in one function, as llvm-ar has
|
||||
/// no "--output"-style flag.
|
||||
pub fn output_input(&mut self, out: impl AsRef<Path>, input: impl AsRef<Path>) -> &mut Self {
|
||||
|
|
@ -274,3 +294,19 @@ impl LlvmNm {
|
|||
self
|
||||
}
|
||||
}
|
||||
|
||||
impl LlvmBcanalyzer {
|
||||
/// Construct a new `llvm-bcanalyzer` invocation. This assumes that `llvm-bcanalyzer` is available
|
||||
/// at `$LLVM_BIN_DIR/llvm-bcanalyzer`.
|
||||
pub fn new() -> Self {
|
||||
let llvm_bcanalyzer = llvm_bin_dir().join("llvm-bcanalyzer");
|
||||
let cmd = Command::new(llvm_bcanalyzer);
|
||||
Self { cmd }
|
||||
}
|
||||
|
||||
/// Provide an input file.
|
||||
pub fn input<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
|
||||
self.cmd.arg(path.as_ref());
|
||||
self
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,8 +48,8 @@ pub use cc::{cc, cxx, extra_c_flags, extra_cxx_flags, Cc};
|
|||
pub use clang::{clang, Clang};
|
||||
pub use htmldocck::htmldocck;
|
||||
pub use llvm::{
|
||||
llvm_ar, llvm_filecheck, llvm_nm, llvm_objdump, llvm_profdata, llvm_readobj, LlvmAr,
|
||||
LlvmFilecheck, LlvmNm, LlvmObjdump, LlvmProfdata, LlvmReadobj,
|
||||
llvm_ar, llvm_bcanalyzer, llvm_filecheck, llvm_nm, llvm_objdump, llvm_profdata, llvm_readobj,
|
||||
LlvmAr, LlvmBcanalyzer, LlvmFilecheck, LlvmNm, LlvmObjdump, LlvmProfdata, LlvmReadobj,
|
||||
};
|
||||
pub use python::python_command;
|
||||
pub use rustc::{aux_build, bare_rustc, rustc, Rustc};
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ run-make/cdylib-dylib-linkage/Makefile
|
|||
run-make/cross-lang-lto-clang/Makefile
|
||||
run-make/cross-lang-lto-pgo-smoketest/Makefile
|
||||
run-make/cross-lang-lto-upstream-rlibs/Makefile
|
||||
run-make/cross-lang-lto/Makefile
|
||||
run-make/dep-info-doesnt-run-much/Makefile
|
||||
run-make/dep-info-spaces/Makefile
|
||||
run-make/dep-info/Makefile
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue