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:
18
build-scripts/kernel_build/src/bindgen/arch/mod.rs
Normal file
18
build-scripts/kernel_build/src/bindgen/arch/mod.rs
Normal file
@ -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),
|
||||
}
|
||||
}
|
13
build-scripts/kernel_build/src/bindgen/arch/x86_64.rs
Normal file
13
build-scripts/kernel_build/src/bindgen/arch/x86_64.rs
Normal file
@ -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")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user