initial commit -- framebuffer Hello, World!

This commit is contained in:
FantasyPvP
2024-11-16 15:13:05 +00:00
commit ac4cf9a27b
16 changed files with 863 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
use std::process::Command;
use std::{env, path::Path};
fn main() {
// Get the output directory from cargo
let out_dir = env::var("OUT_DIR").unwrap();
let build_dir = Path::new(&out_dir).ancestors().nth(3).unwrap();
let iso_root = build_dir.join("iso_root");
// Create ISO directory structure
std::fs::create_dir_all(iso_root.join("boot/limine")).unwrap();
std::fs::create_dir_all(iso_root.join("EFI/BOOT")).unwrap();
// Clone and build Limine if needed
let limine_dir = build_dir.join("limine");
if !limine_dir.exists() {
Command::new("git")
.args([
"clone",
"https://github.com/limine-bootloader/limine.git",
"--branch=v8.x-binary",
"--depth=1",
])
.arg(&limine_dir)
.status()
.expect("Failed to clone Limine");
Command::new("make")
.current_dir(&limine_dir)
.status()
.expect("Failed to build Limine");
}
// Tell cargo to rerun if these files change
println!("cargo:rerun-if-changed=src");
println!("cargo:rerun-if-changed=linker.ld");
println!("cargo:rerun-if-changed=../config/limine.conf");
}