Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/thirdparty/harfbuzz/.circleci/config.yml @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/thirdparty/harfbuzz/.circleci/config.yml Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,229 @@ +version: 2.1 + +executors: + win32-executor: + docker: + - image: cimg/base:edge-20.04 + win64-executor: + docker: + - image: cimg/base:edge-20.04 + autotools-executor: + docker: + - image: cimg/base:edge-20.04 + +jobs: + + macos-aat-fonts: + macos: + xcode: "12.5.1" + steps: + - checkout + - run: HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config ragel freetype glib cairo python3 icu4c graphite2 gobject-introspection gtk-doc ninja + - run: pip3 install meson --upgrade + - run: PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig" meson build -Dcoretext=enabled -Dgraphite=enabled -Dauto_features=enabled -Dchafa=disabled + - run: meson compile -Cbuild + - run: meson test -Cbuild --print-errorlogs + - store_artifacts: + path: build/meson-logs/ + + # will be dropped with autotools removal + distcheck: + executor: autotools-executor + steps: + - checkout + - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y git ninja-build binutils libtool autoconf automake make gcc g++ pkg-config ragel gtk-doc-tools gobject-introspection libfreetype6-dev libglib2.0-dev libgirepository1.0-dev libcairo2-dev libicu-dev libgraphite2-dev python3 python3-pip + - run: pip3 install fonttools meson --upgrade + - run: ./autogen.sh + - run: make -j2 distcheck + - run: rm harfbuzz-* && make distdir + - run: cd harfbuzz-* && meson build && ninja -j2 -Cbuild test + - run: make dist + - persist_to_workspace: + root: . + paths: harfbuzz-*.tar.xz + + publish-dist: + executor: autotools-executor + steps: + - checkout + - attach_workspace: + at: . + - run: | + .ci/publish_release_artifact.sh harfbuzz-$CIRCLE_TAG.tar.xz + + fedora-valgrind: + docker: + - image: fedora:36 + steps: + - checkout + - run: dnf install -y pkg-config ragel valgrind gcc gcc-c++ meson git glib2-devel freetype-devel cairo-devel libicu-devel gobject-introspection-devel graphite2-devel redhat-rpm-config python python-pip || true + - run: meson build --buildtype=debugoptimized + - run: ninja -Cbuild -j9 + # TOOD: increase timeouts and remove --no-suite=slow + - run: RUN_VALGRIND=1 meson test -Cbuild --no-suite=slow --wrap='valgrind --leak-check=full --error-exitcode=1' --print-errorlogs --num-processes=$(($(nproc)/2 + 1)) + + alpine: + docker: + - image: alpine + steps: + - checkout + - run: apk update && apk add ragel gcc g++ glib-dev freetype-dev cairo-dev git py3-pip ninja + - run: pip3 install meson==0.56.0 + - run: meson build --buildtype=minsize + - run: ninja -Cbuild -j9 + - run: meson test -Cbuild --print-errorlogs + + archlinux: + docker: + - image: archlinux/base + steps: + - checkout + - run: pacman --noconfirm -Syu freetype2 meson git clang cairo icu gettext gobject-introspection gcc gcc-libs glib2 graphite pkg-config ragel python python-pip base-devel gtk-doc + - run: pip install flake8 fonttools + - run: flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics + - run: meson build -Dgraphite=enabled -Dauto_features=enabled -Dexperimental_api=true + - run: meson compile -Cbuild -j9 + - run: meson test -Cbuild --print-errorlogs + - run: meson dist -Cbuild + - run: clang -c src/harfbuzz.cc -DHB_NO_MT + - run: clang -c src/hb-*.cc -DHB_NO_MT -DHB_TINY -DHB_NO_OT_FONT + + asan-ubsan: + docker: + - image: ubuntu:20.04 + steps: + - checkout + - run: apt update || true + - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev + - run: pip3 install meson==0.56.0 + - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=address,undefined --buildtype=debugoptimized --wrap-mode=nodownload -Dexperimental_api=true + - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt + + tsan: + docker: + - image: ubuntu:20.04 + steps: + - checkout + - run: apt update || true + - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev + - run: pip3 install meson==0.56.0 + - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=thread --buildtype=debugoptimized --wrap-mode=nodownload -Dexperimental_api=true + - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt + + msan: + docker: + - image: ubuntu:20.04 + steps: + - checkout + - run: apt update || true + - run: DEBIAN_FRONTEND=noninteractive apt install -y python3 python3-pip ninja-build clang lld git binutils pkg-config ragel libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev + - run: pip3 install meson==0.56.0 + # msan, needs --force-fallback-for=glib,freetype2 also which doesn't work yet but runs fuzzer cases at least + - run: CC=clang CXX=clang++ meson build --default-library=static -Db_sanitize=memory --buildtype=debugoptimized --wrap-mode=nodownload -Dauto_features=disabled -Dtests=enabled -Dexperimental_api=true + - run: ninja -Cbuild -j8 && meson test -Cbuild --print-errorlogs | asan_symbolize | c++filt + + clang-cxx2a: + docker: + - image: ubuntu:20.04 + steps: + - checkout + - run: apt update || true + - run: DEBIAN_FRONTEND=noninteractive apt install -y clang lld git binutils + - run: clang -c src/harfbuzz-subset.cc -DHB_NO_MT -Werror -std=c++2a + + crossbuild-win32: + executor: win32-executor + steps: + - checkout + - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y ninja-build gtk-doc-tools python3 python3-pip git g++-mingw-w64-i686 zip + - run: pip3 install meson==0.60.0 + - run: .ci/build-win32.sh + - store_artifacts: + path: harfbuzz-win32.zip + - persist_to_workspace: + root: . + paths: harfbuzz-win32.zip + + publish-win32: + executor: win32-executor + steps: + - checkout + - attach_workspace: + at: . + - run: | + mv harfbuzz-win32{,-$CIRCLE_TAG}.zip + .ci/publish_release_artifact.sh harfbuzz-win32-$CIRCLE_TAG.zip + + crossbuild-win64: + executor: win64-executor + steps: + - checkout + - run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y ninja-build gtk-doc-tools python3 python3-pip git g++-mingw-w64-x86-64 zip + - run: pip3 install meson==0.60.0 + - run: bash .ci/build-win64.sh + - store_artifacts: + path: harfbuzz-win64.zip + - persist_to_workspace: + root: . + paths: harfbuzz-win64.zip + + publish-win64: + executor: win64-executor + steps: + - checkout + - attach_workspace: + at: . + - run: | + mv harfbuzz-win64{,-$CIRCLE_TAG}.zip + .ci/publish_release_artifact.sh harfbuzz-win64-$CIRCLE_TAG.zip + + +workflows: + version: 2 + + build: + jobs: + - macos-aat-fonts + - distcheck: + filters: # must have filter or won't work as a dependency + tags: + only: /.*/ + - publish-dist: + requires: + - distcheck + filters: + tags: + only: /^\d+\.\d+\.\d+$/ + branches: + ignore: /.*/ + - fedora-valgrind + - alpine + #- archlinux + - asan-ubsan + - tsan + - msan + - clang-cxx2a + - crossbuild-win32: + filters: # must have filter or won't work as a dependency + tags: + only: /.*/ + - crossbuild-win64: + filters: # must have filter or won't work as a dependency + tags: + only: /.*/ + - publish-win32: + requires: + - crossbuild-win32 + filters: + tags: + only: /^\d+\.\d+\.\d+$/ + branches: + ignore: /.*/ + - publish-win64: + requires: + - crossbuild-win64 + filters: + tags: + only: /^\d+\.\d+\.\d+$/ + branches: + ignore: /.*/
