mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 14:16:47 +00:00
28 lines
758 B
Rust
28 lines
758 B
Rust
use std::path::PathBuf;
|
|
|
|
use cc::Build;
|
|
|
|
use crate::utils::cargo_handler::{CargoHandler, TargetArch};
|
|
|
|
use self::x86_64::X86_64CFilesArch;
|
|
|
|
pub mod x86_64;
|
|
|
|
pub(super) trait CFilesArch {
|
|
/// 设置架构相关的宏定义
|
|
fn setup_defines(&self, c: &mut Build);
|
|
/// 设置架构相关的全局包含目录
|
|
fn setup_global_include_dir(&self, c: &mut Build);
|
|
/// 设置需要编译的架构相关的文件
|
|
fn setup_files(&self, c: &mut Build, files: &mut Vec<PathBuf>);
|
|
}
|
|
|
|
/// 获取当前的架构;
|
|
pub(super) fn current_cfiles_arch() -> &'static dyn CFilesArch {
|
|
let arch = CargoHandler::target_arch();
|
|
match arch {
|
|
TargetArch::X86_64 => &X86_64CFilesArch,
|
|
_ => panic!("Unsupported arch: {:?}", arch),
|
|
}
|
|
}
|