RoboCute

Robocute 编译/构建文档

robocute是一个python-first,带GUI和cpp runtime的大型库,所以整体构建流程会比较复杂

整体架构可以参考Architecture

准备环境

  1. 能够访问 github 的网络环境
  2. 安装 xmake 我们的cpp工程由xmake组织
  3. 安装 llvm 编译工具链,选择对应的平台版本安装,安装完成后保证 bin 目录在PATH中,方便构建系统寻找,开发版本主要在Windows机器上,会保证保证clang-cl一直可以顺利编译
  4. 安装uv 用于管理python环境,同时支持部分项目构建脚本
  5. 安装 Qt 6.8+ 用来编译GUI程序
  6. 安装7-zip 用来解压和安装预构建资源

配置编译

Robocute的构建核心是python脚本,我们会使用uv来进行python的包同步,同时也会使用python脚本来拉取C++的第三方源码库和必要的预构建资源。之后我们可以选择cmake和xmake两种方式来编译C++代码库,最终使用统一的python脚本完成最后的app安装,打包和分发。

Python环境配置

Python在robocute中扮演双重角色:首先robocute最终会形成一个python package发布,相关的包和测试由python开发实现,另一方面python也扮演了一部分的构建脚本功能。

RBC环境启动

  1. uv run prepare: 安装环境 下载cpp依赖的第三方库
  2. uv run gen: 从src/rbc_meta中生成接口代码,代码生成可以保证很多需要重复定义的对象只需要一次代码编写,没有代码生成无法顺利编译cpp

C++安装

xmake版本:

  1. xmake f -m release -c 配置编译目标
  2. xmake 执行编译
  3. xmake l /xmake/install.lua 将cpp release结果复制安装到希望的py ext位置

cmake版本

  1. mkdir build_cmake && cd build_cmake:创建cmake构建目标文件夹
  2. cmake .. -DQt6_ROOT=D:/tools/Qt/6.9.3/msvc2022_64/lib/cmake/Qt6:寻找Qt6中Qt6Config.cmake的文件目录并通过Qt6_ROOT变量设置给cmake
  3. cmake --build . --config Release:构建项目
  4. uv run install:后处理,将必须的shader、默认场景、渲染默认资源复制到target

测试用例

xmake:

cmake:

Server-Editor

Test Graphics

test_graphics_bin