Yoga
Yoga 是一个可嵌入且性能优秀的灵活盒子布局引擎,支持多种语言的绑定。
构建
Yoga 的主要实现针对 C++ 14,并附带 CMake 中的配套构建逻辑。提供了一个包装器来构建主要库和运行单元测试。
./unit_tests <Debug|Release>
虽然不是必须的,但该脚本会在安装 ninja 后使用它进行更快的构建。
瑜伽也是由微软和社区贡献者维护的vcpkg端口集合的一部分。
如果版本过时,请在vcpkg仓库中创建一个问题或pull请求。
Yoga的大多数测试都是自动生成的,使用描述节点结构的HTML固定文件。这些文件在Chrome中渲染,以生成树的预期布局结果。
<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"配置,允许调试单元测试。只需添加您的断点,然后运行“调试C++单元测试(lldb)”