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