use std::borrow::Cow; use rustc_session::Session; pub mod apple; pub mod archive; pub(crate) mod command; pub mod link; pub(crate) mod linker; pub mod lto; pub mod metadata; pub(crate) mod rpath; pub mod symbol_export; pub mod write; /// The target triple depends on the deployment target, and is required to /// enable features such as cross-language LTO, and for picking the right /// Mach-O commands. /// /// Certain optimizations also depend on the deployment target. pub fn versioned_llvm_target(sess: &Session) -> Cow<'_, str> { if sess.target.is_like_darwin { apple::add_version_to_llvm_target(&sess.target.llvm_target, apple::deployment_target(sess)) .into() } else { // FIXME(madsmtm): Certain other targets also include a version, // we might want to move that here as well. Cow::Borrowed(&sess.target.llvm_target) } }