Skip to content

Commit

Permalink
Try building Pango before testing on Linux and macOS
Browse files Browse the repository at this point in the history
Things should be tested with same Pango and Cairo Version
Try building and installing them.
  • Loading branch information
naveen521kk committed Mar 28, 2021
1 parent f5dcf94 commit 5d38969
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 11 deletions.
33 changes: 23 additions & 10 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Test

on:
push:
branches: [main]
branches: [main,tests-build]
pull_request:
branches: [main]

Expand All @@ -11,6 +11,7 @@ jobs:
name: ${{ matrix.os }} - ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: [3.7, 3.8, 3.9]
Expand All @@ -20,18 +21,29 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install System Dependency (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get install libpango1.0-dev
sudo apt install libcairo2-dev pkg-config python3-dev
- name: Install System Dependency (MacOS)
- name: Install Dependency and Configure
if: runner.os == 'macOS'
run: |
brew install pango
brew install cairo
echo "LD_LIBRARY_PATH=$HOME/pangoprefix/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=$HOME/pangoprefix/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
- name: Set ENV
if: runner.os == 'Linux'
run: |
echo "LD_LIBRARY_PATH=$HOME/pangoprefix/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=$HOME/pangoprefix/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV
- name: Cache Pango
id: cache-pango
uses: actions/cache@v2
with:
path: |
/home/runner/pangobuild
key: 1-${{ runner.os }}-${{ hashFiles('packing/build_pango_tests.sh') }}
- name: Install System Dependency
if: steps.cache-pango.outputs.cache-hit != 'true'
run: |
source packing/build_pango_tests.sh
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
Expand All @@ -42,6 +54,7 @@ jobs:
python setup.py sdist
pip install .
pip install manim
python -c "import manimpango;print(manimpango.cairo_version(),manimpango.pango_version())"
pytest
- name: Coverage
run: |
Expand Down
65 changes: 65 additions & 0 deletions packing/build_pango_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env bash
# build and install pango
set -e

PANGO_VERSION=1.48.3
GLIB_VERSION=2.67.6
FRIBIDI_VERSION=1.0.10
CAIRO_VERSION=1.17.4
HARFBUZZ_VERSION=2.7.4

FILE_PATH=$PWD
PREFIX="$HOME/pangoprefix"

mkdir pango
cd pango
echo "::group::Downloading Files"

python -m pip install requests
python $FILE_PATH/packing/download_and_extract.py "http://download.gnome.org/sources/pango/${PANGO_VERSION%.*}/pango-${PANGO_VERSION}.tar.xz" pango
python $FILE_PATH/packing/download_and_extract.py "http://download.gnome.org/sources/glib/${GLIB_VERSION%.*}/glib-${GLIB_VERSION}.tar.xz" glib
python $FILE_PATH/packing/download_and_extract.py "https://github.com/fribidi/fribidi/releases/download/v${FRIBIDI_VERSION}/fribidi-${FRIBIDI_VERSION}.tar.xz" fribidi
python $FILE_PATH/packing/download_and_extract.py "https://gitlab.freedesktop.org/cairo/cairo/-/archive/${CAIRO_VERSION}/cairo-${CAIRO_VERSION}.tar.gz" cairo
python $FILE_PATH/packing/download_and_extract.py "https://github.com/harfbuzz/harfbuzz/releases/download/${HARFBUZZ_VERSION}/harfbuzz-${HARFBUZZ_VERSION}.tar.xz" harfbuzz

python -m pip uninstall -y requests

echo "::endgroup::"

export CMAKE_PREFIX_PATH=$PKG_CONFIG_PATH
LIB_INSTALL_PREFIX=$PREFIX

echo "::group::Install Meson"
echo "Installing Meson and Ninja"
pip3 install -U meson ninja
echo "::endgroup::"

echo "::group::Building and Install Glib"
meson setup --prefix=$PREFIX --buildtype=release -Dselinux=disabled -Dlibmount=disabled glib_builddir glib
meson compile -C glib_builddir
meson install -C glib_builddir
echo "::endgroup::"

echo "::group::Building and Install Fribidi"
meson setup --prefix=$PREFIX --buildtype=release fribidi_builddir fribidi
meson compile -C fribidi_builddir
meson install -C fribidi_builddir
echo "::endgroup::"

echo "::group::Building and Installing Cairo"
meson setup --prefix=$PREFIX --default-library=shared --buildtype=release -Dfontconfig=enabled -Dfreetype=enabled -Dglib=enabled -Dzlib=enabled -Dtee=enabled cairo_builddir cairo
meson compile -C cairo_builddir
meson install --no-rebuild -C cairo_builddir
echo "::endgroup::"

echo "::group::Building and Installing Harfbuzz"
meson setup --prefix=$PREFIX --buildtype=release -Dtests=disabled -Ddocs=disabled harfbuzz_builddir harfbuzz
meson compile -C harfbuzz_builddir
meson install -C harfbuzz_builddir
echo "::endgroup::"

echo "::group::Buildling and Installing Pango"
meson setup --prefix=$PREFIX --buildtype=release -Dintrospection=disabled pango_builddir pango
meson compile -C pango_builddir
meson install -C pango_builddir
echo "::endgroup::"
2 changes: 1 addition & 1 deletion packing/download_dlls.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from pathlib import Path
from urllib.request import urlretrieve as download

PANGO_VERSION = "1.48.2"
PANGO_VERSION = "1.48.3"


def get_platform():
Expand Down

0 comments on commit 5d38969

Please sign in to comment.