Merge pull request #3148 from harfbuzz/win64

Build win64 binaries
This commit is contained in:
Behdad Esfahbod 2021-08-15 12:57:55 -06:00 committed by GitHub
commit 5b4dbf5af3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 63 additions and 9 deletions

27
.ci/build-win64.sh Normal file
View File

@ -0,0 +1,27 @@
#!/bin/bash
set -e
meson --cross-file=.ci/win64-cross-file.txt \
--wrap-mode=forcefallback \
--buildtype=release \
-Dtests=disabled \
-Dcairo=enabled \
-Dcairo:fontconfig=disabled \
-Dglib=enabled \
-Dfreetype=enabled \
-Dgdi=enabled \
-Ddirectwrite=enabled \
-Dcairo=enabled \
win64build \
$@
ninja -Cwin64build -j3 # building with all the cores won't work fine with CricleCI for some reason
rm -rf win64build/harfbuzz-win64
mkdir win64build/harfbuzz-win64
cp win64build/util/hb-*.exe win64build/harfbuzz-win64
find win64build -name '*.dll' -exec cp {} win64build/harfbuzz-win64 \;
x86_64-w64-mingw32-strip win64build/harfbuzz-win64/*.{dll,exe}
rm -f harfbuzz-win64.zip
(cd win64build && zip -r ../harfbuzz-win64.zip harfbuzz-win64)
echo "harfbuzz-win64.zip is ready."

View File

@ -107,7 +107,7 @@ jobs:
executor: win32-executor executor: win32-executor
steps: steps:
- checkout - checkout
- run: sudo apt update && DEBIAN_FRONTEND=noninteractive sudo apt install -y ninja-build binutils gcc g++ pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev python3 python3-pip git g++-mingw-w64-i686 zip - 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.56.0 --upgrade - run: pip3 install meson==0.56.0 --upgrade
- run: .ci/build-win32.sh - run: .ci/build-win32.sh
- store_artifacts: - store_artifacts:
@ -126,16 +126,37 @@ jobs:
mv harfbuzz-win32{,-$CIRCLE_TAG}.zip mv harfbuzz-win32{,-$CIRCLE_TAG}.zip
.ci/publish_release_artifact.sh harfbuzz-win32-$CIRCLE_TAG.zip .ci/publish_release_artifact.sh harfbuzz-win32-$CIRCLE_TAG.zip
crossbuild-win64:
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-x86-64 zip
- run: pip3 install meson==0.56.0 --upgrade
- run: bash .ci/build-win64.sh
- store_artifacts:
path: harfbuzz-win64.zip
- persist_to_workspace:
root: .
paths: harfbuzz-win64.zip
publish-win64:
executor: win32-executor
steps:
- checkout
- attach_workspace:
at: .
- run: |
mv harfbuzz-win64{,-$CIRCLE_TAG}.zip
.ci/publish_release_artifact.sh harfbuzz-win64-$CIRCLE_TAG.zip
workflows: workflows:
version: 2 version: 2
build: build:
jobs: jobs:
- macos-aat-fonts - macos-aat-fonts
- distcheck: # will be dropped with autotools removal - distcheck
filters:
tags:
only: /^\d+.\d+.\d+$/
- publish-dist: - publish-dist:
requires: requires:
- distcheck - distcheck
@ -148,10 +169,8 @@ workflows:
- alpine - alpine
#- archlinux #- archlinux
- sanitizers - sanitizers
- crossbuild-win32: - crossbuild-win32
filters: - crossbuild-win64
tags:
only: /^\d+.\d+.\d+$/
- publish-win32: - publish-win32:
requires: requires:
- crossbuild-win32 - crossbuild-win32
@ -160,3 +179,11 @@ workflows:
only: /^\d+\.\d+\.\d+$/ only: /^\d+\.\d+\.\d+$/
branches: branches:
ignore: /.*/ ignore: /.*/
- publish-win64:
requires:
- crossbuild-win64
filters:
tags:
only: /^\d+\.\d+\.\d+$/
branches:
ignore: /.*/