跳到主要内容

构建流程

TGOSKits 的统一构建入口是根目录 cargo xtask。它经由 tg-xtask 调用 scripts/axbuild 中的统一分发层,再落到各子系统的解析与执行流程。

调用链

cargo xtask / cargo arceos / cargo starry / cargo axvisor
|
v (.cargo/config.toml aliases)
cargo run -p tg-xtask -- <args>
|
v (xtask/src/main.rs)
axbuild::run()
|
v (scripts/axbuild/src/lib.rs)
+-- Commands::Test -> test_std::run_std_test()
+-- Commands::Clippy -> clippy::run_workspace_check()
+-- Commands::Board -> board::execute()
+-- Commands::ArceOS -> ArceOS::new()?.execute()
+-- Commands::Starry -> Starry::new()?.execute()
+-- Commands::Axvisor -> Axvisor::new()?.execute()

为什么使用统一入口

  • 三套系统在同一 workspace 中协同演化,需要统一的命令入口
  • 根命令隐藏了大量 arch/target、snapshot 和配置解析细节
  • Axvisor、StarryOS 和 ArceOS 的最短命令入口保持一致风格

推荐实践

场景推荐方式不推荐
常规开发cargo xtask ...直接操作子系统 Makefile
排查子项目细节下沉到 os/arceos/Makefile-
构建/运行/测试统一用 cargo xtask 命令族混用不同入口

相关文档