30 lines
888 B
Rust
30 lines
888 B
Rust
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)
|
|
}
|
|
}
|