xref: /DragonOS/build-scripts/kernel_build/src/cfiles/arch/x86_64.rs (revision e26ca418df7af685226d12d7f22fe1785ba163e4)
1 use std::path::PathBuf;
2 
3 use cc::Build;
4 
5 use crate::utils::FileUtils;
6 
7 use super::CFilesArch;
8 
9 pub(super) struct X86_64CFilesArch;
10 
11 impl CFilesArch for X86_64CFilesArch {
12     fn setup_defines(&self, c: &mut cc::Build) {
13         c.define("__x86_64__", None);
14     }
15 
16     fn setup_global_include_dir(&self, c: &mut cc::Build) {
17         c.include("src/arch/x86_64/include");
18     }
19 
20     fn setup_files(&self, _c: &mut Build, files: &mut Vec<PathBuf>) {
21         files.push(PathBuf::from("src/arch/x86_64/driver/hpet.c"));
22         // 获取`kernel/src/arch/x86_64/driver/apic`下的所有C文件
23         files.append(&mut FileUtils::list_all_files(
24             &PathBuf::from("src/arch/x86_64/driver/apic"),
25             Some("c"),
26             true,
27         ));
28     }
29 }
30