update README.md to the newest build guide
This commit is contained in:
parent
b6a2f5ec14
commit
ea00879af0
1 changed files with 43 additions and 3 deletions
46
README.md
46
README.md
|
|
@ -58,6 +58,13 @@ Host gitea.shenrs.eu
|
|||
|
||||
## 3.2 checkout source code
|
||||
|
||||
```sh
|
||||
git clone ssh://forgejo@gitea.shenrs.eu/rshen/xce.git
|
||||
cd xce
|
||||
```
|
||||
|
||||
(参考第 1 节,fork 自己的 branch 再提交 PR)
|
||||
|
||||
## 3.3 build (for package and release)
|
||||
|
||||
```sh
|
||||
|
|
@ -74,18 +81,51 @@ You can find the generated binaries at =result= directory
|
|||
|
||||
## 3.4 build (for daily develop)
|
||||
|
||||
日常开发推荐直接使用 `src/tools/xce-build.sh`(若在 Claude Code 中开发,对应的是 `/xce-build` skill),
|
||||
它会执行 `meson setup` / `meson compile`,并在 `asan` profile 下跑测试。**注意它自己不会进入 `nix develop`
|
||||
环境**,需要先手动 `nix develop`,或者用 `nix develop --command` 包一层:
|
||||
|
||||
```sh
|
||||
cd xce/src
|
||||
nix develop
|
||||
|
||||
tools/xce-build.sh # 全部组件 + 全部测试 (asan profile, 输出到 xce.build/)
|
||||
tools/xce-build.sh controller # 只构建/测试 controller (lib + controller + xce_test)
|
||||
tools/xce-build.sh worker # 只构建 worker
|
||||
tools/xce-build.sh scheduler # 只构建/测试 scheduler
|
||||
tools/xce-build.sh apiserver # 只构建/测试 apiserver + xcecli (Go)
|
||||
```
|
||||
|
||||
或者不进入交互式 shell,直接一条命令跑:
|
||||
|
||||
```sh
|
||||
cd xce/src
|
||||
nix develop --command tools/xce-build.sh controller
|
||||
```
|
||||
|
||||
支持三种 profile(`tools/xce-build.sh [component] [profile]`):
|
||||
|
||||
- `asan`(默认):debug + AddressSanitizer,输出目录 `xce.build/`,会运行测试
|
||||
- `debug`:`-O0 -g3` 无 sanitizer,输出目录 `build.dbg/`,仅编译,用于 gdb 调试
|
||||
- `release`:`-O3` 无 sanitizer,输出目录 `build.release/`,仅编译,用于 soak/性能测试
|
||||
|
||||
注意:单组件构建默认会先 `rm -rf` 对应的 build 目录再重新配置,若同一目录下已有其他组件的产物会被清掉;
|
||||
需要在同一目录下累积多个组件时加 `--incremental`(增量 reconfigure,不清空目录)。
|
||||
|
||||
也可以手动执行底层的 nix + meson 命令(`xce-build.sh` 实际上就是对下面步骤的封装):
|
||||
|
||||
```sh
|
||||
cd xce/src
|
||||
nix develop
|
||||
|
||||
# using meson to generated build configuration (debug and address sanitize)
|
||||
|
||||
meson setup build --buildtype=debug -Db_sanitize=address
|
||||
meson setup xce.build --buildtype=debug -Db_sanitize=address
|
||||
|
||||
# run meson to build
|
||||
meson compile -C build
|
||||
meson compile -C xce.build
|
||||
|
||||
# The generated files will be in build/
|
||||
# The generated files will be in xce.build/
|
||||
```
|
||||
|
||||
## 3.5 build AppImage package
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue