Skip to content

kivy/angle-builder

Repository files navigation

angle-builder

angle-builder is a dedicated tool designed to streamline the build process of the ANGLE library, a critical component utilized by the Kivy project.

Backers on Open Collective Sponsors on Open Collective

Why angle-builder?

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.

Key features

  • 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.

Installation

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 .

Usage

Building ANGLE via angle-builder

The following targets are available:

  • macos-x64: Creates a zip file containing libEGL.dylib, libGLESv2.dylib, the include folder, and the LICENSE file for Intel-based macs.
  • macos-arm64: Creates a zip file containing libEGL.dylib, libGLESv2.dylib, the include folder, and the LICENSE file for Apple Silicon macs.
  • macos-universal: Creates a zip file containing libEGL.dylib, libGLESv2.dylib, the include folder, and the LICENSE file for Intel-based and Apple Silicon macs, by merging the binaries generated by the macos-x64 and macos-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

License

angle-builder is MIT licensed, actively developed by a great community and is supported by many projects managed by the Kivy Organization.

Documentation

Documentation for this repository.

Support

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.

Contributing

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.

Code of Conduct

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.

Contributors

This project exists thanks to all the people who contribute. [Become a contributor].

Backers

Thank you to all of our backers! 🙏 [Become a backer]

Sponsors

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.

About

Build and releases ANGLE binaries for different platforms

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages