| 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, sess.apple_deployment_target()) | |
| .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) | |
| } | |
| } |