[package]
name = "ax-posix-api"
version.workspace = true
repository = "https://github.com/rcore-os/tgoskits"
edition.workspace = true
authors = [
    "Yuekai Jia <equation618@gmail.com>",
    "yanjuguang <coolyanjg@163.com>",
    "wudashuai <wu-ds20@mails.tsinghua.edu.cn>",
    "yfblock <321353225@qq.com>",
    "scPointer <bhy18@mails.tsinghua.edu.cn>",
    "Shiping Yuan <robert_yuan@pku.edu.com>",
]
description = "POSIX-compatible APIs for ArceOS modules"
include = ["src/**/*.rs", "Cargo.toml", "build.rs", "ctypes.h"]
license.workspace = true

[features]
default = []

smp = ["ax-feat/smp"]
irq = ["ax-feat/irq"]
alloc = ["dep:ax-alloc", "ax-feat/alloc"]
multitask = ["ax-task/multitask", "ax-feat/multitask", "ax-sync/multitask"]
fd = ["alloc", "dep:scope-local"]
fs = ["dep:ax-fs", "ax-feat/fs", "fd"]
net = ["dep:ax-net", "ax-feat/net", "fd"]
pipe = ["fd"]
select = ["fd"]
epoll = ["fd"]

[dependencies]
# ArceOS modules
ax-alloc = { workspace = true, optional = true }
ax-config.workspace = true
ax-feat.workspace = true
ax-fs = { workspace = true, optional = true }
ax-hal.workspace = true
ax-log.workspace = true
ax-net = { workspace = true, optional = true }
ax-runtime.workspace = true
ax-sync.workspace = true
ax-task = { workspace = true, optional = true }

# Other crates
ax-errno.workspace = true
ax-io.workspace = true
flatten_objects = "0.2"
lazy_static.workspace = true
scope-local = { workspace = true, optional = true }
spin.workspace = true

[build-dependencies]
bindgen.workspace = true
