angle-builder is a dedicated tool designed to streamline the build process of the ANGLE library, a critical component utilized by the Kivy project.
Building the ANGLE library manually can be a time-consuming and resource-intensive task, demanding substantial disk space and several minutes on a performant laptop.
Recognizing these challenges, we developed angle-builder
mainly with CI/CD in mind, even though
it can be used on your own development machine.
- Simplified Build Process: Our tool automates the intricate steps involved in building the ANGLE library, making it easy for developers to integrate into their workflow.
- Binaries Consolidation for Apple Platforms:
angle-builder
includes scripts to merge the generated binaries into a single one for Apple platforms, when applicable. This results in a fat .dylib for macOS and an .xcframework for iOS for-universal
targets. - CI/CD Integration: We use GitHub Actions to build the library and store the binaries for later use. This allows us to avoid the time-consuming and resource-intensive build process on each CI/CD run, or on each developer's machine.
Clone the repository and install the package:
$ git clone https://github.com/kivy/angle-builder.git
$ cd angle-builder
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install .
The following targets are available:
macos-x64
: Creates a zip file containinglibEGL.dylib
,libGLESv2.dylib
, theinclude
folder, and theLICENSE
file for Intel-based macs.macos-arm64
: Creates a zip file containinglibEGL.dylib
,libGLESv2.dylib
, theinclude
folder, and theLICENSE
file for Apple Silicon macs.macos-universal
: Creates a zip file containinglibEGL.dylib
,libGLESv2.dylib
, theinclude
folder, and theLICENSE
file for Intel-based and Apple Silicon macs, by merging the binaries generated by themacos-x64
andmacos-arm64
targets.
To build the library, run the following command:
$ angle-builder <target>
For the list of all the available options, run:
$ angle-builder -h
angle-builder is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization.
Documentation for this repository.
Are you having trouble using angle-builder? Is there an error you don’t understand? Are you trying to figure out how to use it? We have volunteers who can help!
The best channels to contact us for support are listed in the latest Contact Us document.
angle-builder is part of the Kivy ecosystem - a large group of products used by many thousands of developers for free, but it is built entirely by the contributions of volunteers. We welcome (and rely on) users who want to give back to the community by contributing to the project.
Contributions can come in many forms. See the latest Contribution Guidelines for how you can help us.
In the interest of fostering an open and welcoming community, we as contributors and maintainers need to ensure participation in our project and our sister projects is a harassment-free and positive experience for everyone. It is vital that all interaction is conducted in a manner conveying respect, open-mindedness and gratitude.
Please consult the latest Code of Conduct.
This project exists thanks to all the people who contribute. [Become a contributor].
Thank you to all of our backers! 🙏 [Become a backer]
Special thanks to all of our sponsors, past and present. Support this project by [becoming a sponsor].
Here are our top current sponsors. Please click through to see their websites, and support them as they support us.