| # IREE Repository Management |
| |
| Due to the process by which we synchronize this GitHub project with our internal |
| Google source code repository, there are some oddities in our workflows and |
| processes. We aim to minimize these, and especially to mitigate their impact on |
| external contributors, but they are documented here for clarity and |
| transparency. If any of these things are particularly troublesome or painful for |
| your workflow, please reach out to us so we can prioritize a fix. |
| |
| Hopefully these quirks actually make usage in other downstream projects easier, |
| but integrators may need to look past some details (like the Bazel build system, |
| Android support, etc.) based on their specific requirements. |
| |
| ## Branches |
| |
| The default branch is called `main`. PRs should be sent there. We also have a |
| `google` branch that is sometimes used to interface with the Google internal |
| source repository. For the most part any work on the `google` branch should |
| have minimal effect on normal developer workflows. |
| |
| ## Build Systems |
| |
| IREE supports building from source with both Bazel and CMake. CMake is the |
| preferred build system for open source users and offers the most flexible |
| configuration options. Bazel is a stricter build system and helps with usage in |
| the Google internal source repository. Certain dependencies (think large/complex |
| projects like CUDA, TensorFlow, PyTorch, etc.) may be difficult to support with |
| one build system or the other, so the project may configure these as optional. |