sydev 是一个面向 SylixOS 开发环境的命令行工具,用于初始化 workspace、创建项目、管理设备、编译、上传,以及把整套配置保存成模板或 JSON 文件。
npm install -g @haawpc/sydev查看安装结果:
sydev --version
sydev --help- Node.js
>= 18 - RealEvo-Stream 已安装,且
rl/rl-workspace/rl-project等命令可用 - 执行
workspace、project、device、template apply、init时,需要在本机具备对应的 SylixOS/RealEvo 环境 build、clean、rebuild、upload需要在有效 workspace 根目录中运行
sydev workspace initsydev project createsydev device addsydev build
sydev build libcpusydev upload
sydev upload libcpu --device board1| 命令 | 说明 |
|---|---|
sydev workspace |
初始化 workspace,或检查当前目录是否已经初始化 |
sydev project |
创建项目,列出当前 workspace 中的项目 |
sydev device |
添加设备,列出当前 workspace 可见的设备 |
sydev build |
编译单个项目,或交互式选择多个项目/构建模板 |
sydev clean |
清理单个项目,或交互式选择多个项目 |
sydev rebuild |
先 clean 再 build |
sydev upload |
上传单个、多个或全部项目产物到设备 |
sydev template |
管理全局配置模板,支持导入、导出、应用 |
sydev init |
从完整 JSON 配置文件一次性初始化 workspace + projects + devices |
sydev workspace init
sydev project create
sydev device add
sydev build
sydev uploadsydev workspace init --config workspace.json
sydev project create --config project.json
sydev device add --config device.json
sydev template apply env.json --cwd /path/to/ws --base-path /path/to/base -ysydev template export -o sydev-config.json
sydev template import sydev-config.json
sydev template apply sydev-config.json --cwd /path/to/new-ws --base-path /path/to/new-base -yworkspace init、project create、device add在非交互模式下不再重复打印配置摘要,也不再触发确认流程- 非交互模式只保留实际执行输出,便于脚本调用和 CI 日志阅读
- workspace/template 创建 base 后自动对
base/libsylixos/SylixOS/mktemp目录递归执行 dos2unix,修复 CRLF 换行导致编译异常 - build base 时若触发 jobserver patch 也同步执行 dos2unix
- 修复 upload 命令循环中事件监听器泄漏(进度输出重复)
- 修复设备端口为 0 时被错误当作未配置的 bug
- 修复 FTP 连接在异常路径未正确释放的资源泄漏
- BuildRunner/UploadRunner 不再修改调用方传入的工程数组
- config-reader 区分”文件不存在”和”文件解析失败”
- 提取 build/clean/rebuild 共享逻辑,减少代码重复
- 补齐 core package 缺失的模块导出
- 恢复
MULTI_PLATFORM_BUILD/PLATFORM_NAME同步逻辑 - 新增
patchBaseMultiPlatformMk():修补 base Makefile,确保-j并行度通过 jobserver 正确传递 workspace init时自动执行 patch;sydev build base -- -j<N>时自动检测并 patchlts_3.6.5_compiled版本跳过页大小、编译组件、是否编译三个交互问题- 修复
baseComponents全选或全不选时错误触发 validate 提示
workspace init、sydev init --config、template apply都支持 ARM64 页大小配置与 Base 编译组件裁剪- ARM64 页大小会在 base 构造完成且
libsylixos就绪后,再修改libsylixos/SylixOS/config/cpu/cpu_cfg_arm64.h - Base 若选择编译,
rl-workspace阶段始终按”不编译”构造,待 base 准备完成后再进入 base 目录执行make all - Base 编译组件交互列表与非交互配置都支持部分编译;
libsylixos固定必选,libcextern改为可选 template创建时的平台列表已与workspace init/device add使用同一套完整平台常量
template 命令管理的是 workspace / project / device / full 配置模板,存储在用户目录 ~/.sydev/templates/ 下。
典型用途:
- 保存一套可重复使用的环境配置
- 从 JSON 文件导入配置
- 在新目录中应用
workspace或full配置 - 在已有 workspace 中复用
project或device模板
build 命令还支持执行 .sydev/Makefile 中自定义的构建目标。它们通常以 __ 开头,由 sydev build 识别和执行,不属于 template 子命令体系。
示例:
SELF := $(firstword $(MAKEFILE_LIST))
__demo:
$(MAKE) -f $(SELF) libcpu
$(MAKE) -f $(SELF) libnet执行:
sydev build __demo所有主命令和子命令都支持 --help:
sydev --help
sydev workspace init --help
sydev project create --help
sydev template apply --helpworkspace/
├── .realevo/
│ ├── config.json
│ ├── workspace.json
│ ├── projects.json
│ └── devicelist.json
├── .sydev/
│ └── Makefile
├── project-a/
│ ├── .project
│ ├── Makefile
│ ├── config.mk
│ └── .reproject
└── project-b/
├── .project
├── Makefile
├── config.mk
└── .reproject
说明:
build/clean/rebuild/upload默认把当前目录视为 workspace 根目录project list、build、clean、rebuild等命令当前通过“一级子目录同时包含.project和Makefile”来识别项目.sydev/Makefile的工程 target 内部调用rl-build,例如bear --append -- rl-build build --project=<name>build/clean/rebuild执行前,会先把目标工程config.mk里的SYLIXOS_BASE_PATH同步成当前 workspace 的 base 路径upload/device list会优先读取.realevo/devicelist.json,若不存在再回退到.realevo/config.json
这个仓库的文档以当前 CLI 行为为准,不保留已经移除或尚未实现的命令示例。若修改命令行接口,请同步更新:
README.mddocs/COMMANDS.mddocs/CONFIG_FILES.md- 受影响的专题文档