Files
EVEngine/src/engine/cmdline
Cursor Agentand西风逍遥游 a97f7f281f feat(boot): bind whatever modules the build contains, and drop the forked root script
load.nut constructed about thirty modules by name, so any build that trimmed
one crashed at bind time. That is the only reason the browser runtime needed a
second root script, load_web.nut, listing the WASM-surviving subset by hand:
two files to keep in step with the link list, and no way to express any other
subset.

The boot script now walks eve.moduleList, generated at configure time from the
same manifest that produces the link list, and guards optional modules with
has_module(). The two frame drivers share one eve_frame(): desktop runs the
while loop at the bottom of load.nut, the browser leaves it to
emscripten_set_main_loop through the new eve.hostDrivesFrames flag rather than
a separate script. load_web.nut is gone.

EVENGINE_WEBGPU_TRIM is gone as well. What was a special case is now the "web"
profile, and the two remaining uses that really meant "is this Emscripten" say
so directly. Third-party groups the WASM aggregate does not build resolve to
nothing there, matching the list it linked before.

graphics now treats font as an optional dependency rather than a hard one:
graphics/Font.cpp is its only user and was already excluded on WASM. Turning
font off excludes that file everywhere, so the rule no longer depends on the
platform.

Verified: full-profile link line still identical to before the manifest work;
web profile resolves to exactly the module set the old REMOVE_ITEM list left;
a 3d-profile binary boots and runs the basic example, reporting avatar and
dialogue absent and the rest present; example smoke suite unchanged at 19/9.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-08-18 13:46:25 +00:00
..

Cmdline

这是一个命令行工具模块,是PC-dev版的核心入口,可以执行诸多命令行指令,包括:

  1. 创建新工程 create
  2. 运行当前程序 run
  3. 运行开发服务器 dev-server
  4. 打包 zip/package
  5. 下载依赖项 get
  6. 自动测试 test
  7. 查看文档 doc

其中核心是执行、测试、创建、打包

执行逻辑(目录):

  1. 创建脚本VM
  2. 查看当前文件夹下是否有启动脚本 boot.nut 有: 加载 没有: 加载默认boot脚本
  3. 运行脚本

执行逻辑(压缩包):

  1. 加载压缩包内文件系统
  2. 创建脚本VM
  3. 查看当前文件夹下是否有启动脚本 boot.nut 有: 加载 没有: 加载默认boot脚本
  4. 运行脚本

开发服务器逻辑:

  1. 创建脚本VM
  2. 查看当前文件夹下是否有启动脚本 有: 加载 没有: 加载默认boot脚本
  3. 监视当前文件夹下的文件变动
  4. 记录重启点
  5. 重载文件夹下脚本变动
  6. 运行脚本

测试逻辑:

  1. 检测是否有测试配置 test.nut
  2. 加载脚本,根据命令行参数执行对应测试
  3. 测试除了自动单元测试,还可以执行测试场景,加载人物、地图和剧情

查看文档 根据当前版本,自动查找符号并打开在线文档