可用于在多语言环境中实现高性能的 flexbox 布局。项目以 C++ 14 为核心实现,提供多语言绑定,支持通过 CMake 构建,含自动生成测试及 VSCode 调试配置,性能优异且易于嵌入。【此简介由AI生成】
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
Yoga

Yoga 是一款可嵌入且性能优异的 flexbox 布局引擎,提供多种语言的绑定。
构建
Yoga 的主要实现面向 C++ 14,同时配备 CMake 构建逻辑。我们提供了一个包装器,用于构建主库并运行单元测试。
./unit_tests <Debug|Release>
虽然非必需,但如果已安装 ninja,此脚本将使用它来加快构建速度。
Yoga 还是由 Microsoft 和社区贡献者维护的 vcpkg 端口集合的一部分。如果版本已过时,请在 vcpkg 代码库上创建问题或拉取请求。
添加测试
Yoga 的许多测试是自动生成的,使用描述节点结构的 HTML 测试装置。这些测试装置在 Chrome 中渲染,以生成树的预期布局结果。新的测试装置可添加到 gentest/fixtures。
<div id="my_test" style="width: 100px; height: 100px; align-items: center;">
<div style="width: 50px; height: 50px;"></div>
</div>
从已添加的测试固件生成新测试:
- 在
gentest目录中运行bundle install以安装测试生成器的依赖项。 - 在
gentest目录中运行ruby gentest.rb。
调试
Yoga 提供了 VSCode 的 "launch.json" 配置,允许调试单元测试。只需添加断点,然后运行“Debug C++ Unit tests (lldb)”(在 Windows 上为“Debug C++ Unit tests (vsdbg)”)即可。