[package]
name = "gbos-rust-part"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["staticlib"]

[dependencies]
arch = { path = "./arch" }
atomic_unique_refcell = { path = "./crates/atomic_unique_refcell", features = [
    "no_std",
] }
buddy_allocator = { path = "./crates/buddy_allocator" }
eonix_mm = { path = "./crates/eonix_mm" }
eonix_preempt = { path = "./crates/eonix_preempt" }
eonix_runtime = { path = "./crates/eonix_runtime" }
eonix_sync = { path = "./crates/eonix_sync" }
eonix_log = { path = "./crates/eonix_log" }
intrusive_list = { path = "./crates/intrusive_list" }
pointers = { path = "./crates/pointers" }
posix_types = { path = "./crates/posix_types" }

bitflags = "2.6.0"
intrusive-collections = "0.9.7"
itertools = { version = "0.13.0", default-features = false }

[features]
default = ["smp"]
trace_syscall = []
trace_scheduler = []
log_trace = ["trace_syscall", "trace_scheduler"]
log_debug = []
smp = []

[build-dependencies]
bindgen = "0.70.1"

[profile.dev]
panic = "abort"

[profile.dev.package.arch]
opt-level = 0

[profile.dev.package.eonix_preempt]
opt-level = 2

[profile.dev.package.eonix_runtime]
opt-level = 0

[profile.dev.package.eonix_sync]
opt-level = 2

[profile.dev.package.intrusive_list]
opt-level = 2

[profile.dev.package."*"]
opt-level = "s"

[profile.dev.build-override]
opt-level = 0
codegen-units = 256
debug = false

[profile.release.build-override]
opt-level = 0
codegen-units = 256
debug = false
