Skip to content

Commit

Permalink
Update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
naveen521kk committed Sep 13, 2024
1 parent f122c19 commit 7394fd6
Showing 1 changed file with 54 additions and 2 deletions.
56 changes: 54 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,59 @@
# Pango Build

Buiding Pango and Cairo for use of some Python Projects. Used mainly for creating wheels for
[manimpango](https://github.com/manimcommunity/manim).
`pango-build` is mainly used for creating wheels for [ManimPango](https://github.com/manimcommunity/manim). It provides a static Windows build of pango including all its dependencies which ManimPango uses for its binary Windows wheels.

In addition to pango it also provides a static build of
[pkgconf](https://github.com/pkgconf/pkgconf) which is required by ManimPango
during its wheel build process for locating dependencies.

The build process is based on the [meson](https://mesonbuild.com/) build system
and uses Visual Studio on GitHub Actions to automatically build and publish
everything. See the [workflow file](.github/workflows/main.yml) for details. You
can of course also build everything locally yourself, see the instructions
below.

## Manual build instructions

```bash
# install meson and ninja
pip install -r requirements.txt

# build pango
cd pango-build
meson setup buildDir --prefix=/
meson compile -C buildDir
meson install -C buildDir --destdir ../dist
# see ./dist for the result

# build pkgconf
cd ../pkgconf-build
meson setup buildDir --prefix=/
meson compile -C buildDir
meson install -C buildDir --destdir ../dist
# see ./dist for the result
```

## Updating dependencies

All dependencies and pango itself are included via the [meson wrap
system](https://mesonbuild.com/Wrap-dependency-system-manual.html) and we depend
on the [meson WrapDB](https://github.com/mesonbuild/wrapdb) for updates. The
following is required to pull in new versions from pypi and wrapdb:

```bash
# manually update meson/ninja in requirements.txt
pip install -r requirements.txt
# update wrap files from wrapdb
meson wrap update --sourcedir pango-build
meson wrap update --sourcedir pkgconf-build
```

## Creating a new release

- Create a new release in the GH UI
- GHA will do the rest

## License

All the build script are licensed under Apache License 2.0, and the binaries in release section
is under LGPL same as Pango's license.

0 comments on commit 7394fd6

Please sign in to comment.