Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1215 This updates: 1. The Gradle Wrapper and Gradle Version 2. AGP Version 3. Android SDK and NDK Versions 4. Java Version (to support newer AGP) 5. Required CMake Version Versions are loosely aligned to RN. CMake 3.18.1 is the latest provided by the NDK but the Android build itself creates warnings on CMake < 3.19, so we add the "+" to prefer something newer if available (but we set an old required version to CMake policy will keep compatible). This also removes the "yogacore" project, which packages libyoga.so without the jni bindings. Afaik it was never published, and we don't rely on it ourselves. Reviewed By: cortinico Differential Revision: D42406551 fbshipit-source-id: 5e127dffde69352269ecbddadbc2bdd82f7d50fa
1.5 KiB
1.5 KiB
path, title, hasPlayground
path | title | hasPlayground |
---|---|---|
/contributing/opening-a-pull-request | Opening a Pull Request | false |
Opening a Pull Request
Before opening your first pull request to Yoga you have to know how to get the code, install build time dependencies, and test the code locally.
Clone
$> git clone https://github.com/facebook/yoga.git
$> cd yoga
Install dependencies
$> git submodule init
$> git submodule update
$> brew install buck
Build and Test
$> buck build //:yoga
$> buck test //:yoga
Making a Change
Now all you need to do is make your change and test it before submitting a pull request for review. Below is the general structure of the repo and where you may want to make your change. One you have made your change see the testing documentation for more on how to test your change.
/yoga
|-- yoga # Home to the main Yoga codebase written in C++. Any algorithmic changes should be made here
|-- lib # Yoga external dependencies. Be thoughtful adding any new ones
|-- tests # Yoga's C++ test suite. Both manaul and generated tests
|-- gentest
| |-- fixtures # html fixtures for generated tests
|-- java
| |-- com/facebook/yoga # Java binding code
| |-- jni # JNI binding code
|-- android # Android View bindings
|-- YogaKit # iOS UIView bindings
|-- javascript # emscripten / javascript bindings
|-- csharp # .NET bindings in c#