4
1
mirror of https://github.com/DragonOS-Community/DragonOS.git synced 2025-07-11 07:03:23 +00:00

把内核构建脚本单独独立成一个crate (#444)

This commit is contained in:
LoGin
2023-11-17 11:26:26 +08:00
committed by GitHub
parent a0c98cd4df
commit e26ca418df
15 changed files with 374 additions and 180 deletions

@ -0,0 +1,18 @@
use crate::utils::cargo_handler::{CargoHandler, TargetArch};
use self::x86_64::X86_64BindgenArch;
pub mod x86_64;
pub(super) trait BindgenArch {
fn generate_bindings(&self, builder: bindgen::Builder) -> bindgen::Builder;
}
/// 获取当前的bindgen架构;
pub(super) fn current_bindgenarch() -> &'static dyn BindgenArch {
let arch = CargoHandler::target_arch();
match arch {
TargetArch::X86_64 => &X86_64BindgenArch,
_ => panic!("Unsupported arch: {:?}", arch),
}
}

@ -0,0 +1,13 @@
use super::BindgenArch;
pub struct X86_64BindgenArch;
impl BindgenArch for X86_64BindgenArch {
fn generate_bindings(&self, builder: bindgen::Builder) -> bindgen::Builder {
builder
.clang_arg("-I./src/arch/x86_64/include")
.clang_arg("--target=x86_64-none-none")
}
}