robocute是一个python-first,带GUI和cpp runtime的大型库,所以整体构建流程会比较复杂
整体架构可以参考Architecture
Robocute的构建核心是python脚本,我们会使用uv来进行python的包同步,同时也会使用python脚本来拉取C++的第三方源码库和必要的预构建资源。之后我们可以选择cmake和xmake两种方式来编译C++代码库,最终使用统一的python脚本完成最后的app安装,打包和分发。
Python在robocute中扮演双重角色:首先robocute最终会形成一个python package发布,相关的包和测试由python开发实现,另一方面python也扮演了一部分的构建脚本功能。
uv sync同步所有包
--extra dev--extra cu128/cu130--extra uipc,并参考--extra robotics.venv/Scripts/python.exeuv run prepare: 安装环境 下载cpp依赖的第三方库uv run gen: 从src/rbc_meta中生成接口代码,代码生成可以保证很多需要重复定义的对象只需要一次代码编写,没有代码生成无法顺利编译cppxmake版本:
xmake f -m release -c 配置编译目标xmake 执行编译xmake l /xmake/install.lua 将cpp release结果复制安装到希望的py ext位置cmake版本
mkdir build_cmake && cd build_cmake:创建cmake构建目标文件夹cmake .. -DQt6_ROOT=D:/tools/Qt/6.9.3/msvc2022_64/lib/cmake/Qt6:寻找Qt6中Qt6Config.cmake的文件目录并通过Qt6_ROOT变量设置给cmakecmake --build . --config Release:构建项目uv run install:后处理,将必须的shader、默认场景、渲染默认资源复制到targetxmake:
uv run main.pyxmake run rbc-editorxmake run test_graphics_binxmake run test_serdecmake:
bin文件夹存在于系统PATH变量中uv run main.pycd ./build_cmake/bin/Release/ && ./rbc_editorcd ./build_cmake/bin/Release/ && ./test_graphics_bin