Skip to content

Commit ec4152c

Browse files
authored
feat: chrome m140 (#1110)
1 parent aef160e commit ec4152c

File tree

15 files changed

+124
-119
lines changed

15 files changed

+124
-119
lines changed

.github/workflows/CI.yaml

Lines changed: 24 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,7 @@ jobs:
100100
- host: ubuntu-latest
101101
downloadTarget: 'x86_64-unknown-linux-musl'
102102
target: 'x86_64-unknown-linux-musl'
103-
docker: ghcr.io/brooooooklyn/canvas/musl-builder:lts
104-
build: >-
105-
set -e &&
106-
apk add libc++-dev libc++-static &&
107-
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/*.o /usr/lib/ &&
108-
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/libgcc.a /usr/lib/ &&
109-
cp /usr/lib/gcc/x86_64-alpine-linux-musl/14.2.0/libgcc_eh.a /usr/lib/ &&
110-
wget "https://github.com/Brooooooklyn/canvas/releases/download/libcxxabi-$(cat llvm-version)/libc++abi-x86_64.a" &&
111-
mv libc++abi-x86_64.a /usr/lib/libc++abi.a &&
112-
CXXFLAGS="-std=c++20 -stdlib=libc++ -static -fPIC -fno-cxx-exceptions -fno-exceptions -I/usr/include/c++/v1" CC=clang CXX=clang++ yarn build --target x86_64-unknown-linux-musl
103+
build: yarn build --target x86_64-unknown-linux-musl -x
113104
- host: macos-latest
114105
downloadTarget: 'aarch64-apple-darwin'
115106
target: 'aarch64-apple-darwin'
@@ -129,22 +120,7 @@ jobs:
129120
- host: ubuntu-24.04-arm
130121
target: 'aarch64-unknown-linux-musl'
131122
downloadTarget: 'aarch64-unknown-linux-musl'
132-
docker: node:18-alpine
133-
build: >-
134-
set -e &&
135-
apk add musl-dev wget rustup bash python3 git build-base cmake perl clang llvm libc++-dev libc++-static llvm-libunwind-static tar xz ninja &&
136-
apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing gn perl meson &&
137-
wget "https://github.com/Brooooooklyn/canvas/releases/download/libcxxabi-$(cat llvm-version)/libc++abi-aarch64.a" &&
138-
mv libc++abi-aarch64.a /usr/lib/libc++abi.a &&
139-
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/*.o /usr/lib/ &&
140-
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/libgcc.a /usr/lib/ &&
141-
cp /usr/lib/gcc/aarch64-alpine-linux-musl/14.2.0/libgcc_eh.a /usr/lib/ &&
142-
export GN_EXE=gn &&
143-
rustup-init -y --default-host aarch64-unknown-linux-musl &&
144-
source "$HOME/.cargo/env" &&
145-
export CXXFLAGS="-std=c++20 -stdlib=libc++ -static -fPIC -fno-cxx-exceptions -fno-exceptions -I/usr/include/c++/v1" &&
146-
export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-alpine-linux-musl-gcc &&
147-
CC=clang CXX=clang++ yarn build --target aarch64-unknown-linux-musl
123+
build: yarn build --target aarch64-unknown-linux-musl -x
148124
- host: ubuntu-latest
149125
target: 'aarch64-linux-android'
150126
downloadTarget: 'aarch64-linux-android'
@@ -187,9 +163,21 @@ jobs:
187163
run: echo "C:\\msys64\\mingw64\\bin" >> $GITHUB_PATH
188164
shell: bash
189165

166+
- uses: mlugg/setup-zig@v2
167+
if: ${{ contains(matrix.settings.target, 'musl') }}
168+
with:
169+
version: 0.15.1
170+
- name: Install cargo-zigbuild
171+
uses: taiki-e/install-action@v2
172+
if: ${{ contains(matrix.settings.target, 'musl') }}
173+
env:
174+
GITHUB_TOKEN: ${{ github.token }}
175+
with:
176+
tool: cargo-zigbuild
177+
190178
- name: Setup nasm
191179
uses: ilammy/setup-nasm@v1
192-
if: matrix.settings.host == 'windows-latest'
180+
if: ${{ matrix.settings.host == 'windows-latest' || matrix.settings.target == 'x86_64-unknown-linux-musl' }}
193181

194182
- name: Install
195183
uses: ./.github/actions/setup-rust
@@ -233,17 +221,15 @@ jobs:
233221
steps:
234222
- name: Setup tools
235223
run: |
236-
apt-get update
237-
apt-get install -y gcc-9-arm-linux-gnueabihf g++-9-arm-linux-gnueabihf libatomic1-armhf-cross git build-essential cmake ninja-build wget curl gnupg
238-
echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-20 main" >> /etc/apt/sources.list
239-
echo "deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-20 main" >> /etc/apt/sources.list
240-
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
241-
apt-get update
242-
apt-get install -y clang-20
243-
ln -s /usr/bin/clang-20 /usr/bin/clang
244-
ln -s /usr/bin/clang++-20 /usr/bin/clang++
245-
ln -s /usr/bin/arm-linux-gnueabihf-gcc-9 /usr/bin/arm-linux-gnueabihf-gcc
246-
ln -s /usr/bin/arm-linux-gnueabihf-g++-9 /usr/bin/arm-linux-gnueabihf-g++
224+
apt-get update
225+
apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libatomic1-armhf-cross git build-essential cmake ninja-build wget curl gnupg
226+
echo "deb http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-19 main" >> /etc/apt/sources.list
227+
echo "deb-src http://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-19 main" >> /etc/apt/sources.list
228+
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
229+
apt-get update
230+
apt-get install -y clang-19
231+
ln -s /usr/bin/clang-19 /usr/bin/clang
232+
ln -s /usr/bin/clang++-19 /usr/bin/clang++
247233
- uses: actions/checkout@v5
248234
with:
249235
submodules: true

.github/workflows/skia.yaml

Lines changed: 32 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,8 @@ jobs:
5555
if: matrix.os == 'windows-latest'
5656
run: |
5757
choco install llvm ninja -y
58-
choco upgrade llvm --version "19.1.7"
5958
pip install certifi
6059
61-
- name: Apply workaround for https://github.com/llvm/llvm-project/issues/95133
62-
if: runner.os == 'Windows'
63-
shell: cmd
64-
run: |
65-
perl -i -ne "print unless /unsigned __int32 xbegin\(void\);/" "C:\Program Files\LLVM\lib\clang\19\include\intrin.h"
66-
perl -i -ne "print unless /void _xend\(void\);/" "C:\Program Files\LLVM\lib\clang\19\include\intrin.h"
67-
findstr /C:"unsigned __int32 xbegin(void);" "C:\Program Files\LLVM\lib\clang\19\include\intrin.h" || exit /b 0
68-
findstr /C:"void _xend(void);" "C:\Program Files\LLVM\lib\clang\19\include\intrin.h" || exit /b 0
6960
# See https://github.com/ilammy/msvc-dev-cmd?tab=readme-ov-file#caveats
7061
- name: Remove GNU link.exe from GH actions
7162
if: runner.os == 'Windows'
@@ -177,20 +168,18 @@ jobs:
177168
node-version: 22
178169
cache: 'yarn'
179170

180-
- name: Login to GitHub Container Registry
181-
uses: docker/login-action@v3
171+
- uses: mlugg/setup-zig@v2
182172
with:
183-
registry: ghcr.io
184-
username: ${{ secrets.GH_CONTAINER_UNAME }}
185-
password: ${{ secrets.GH_TOKEN }}
173+
version: 0.15.1
174+
- name: Install cargo-zigbuild
175+
uses: taiki-e/install-action@v2
176+
env:
177+
GITHUB_TOKEN: ${{ github.token }}
178+
with:
179+
tool: cargo-zigbuild
186180

187181
- name: Compile skia
188-
run: |
189-
docker pull ghcr.io/brooooooklyn/canvas/musl-builder:lts
190-
docker tag ghcr.io/brooooooklyn/canvas/musl-builder:lts builder
191-
docker run --rm -v $(pwd):/canvas -w /canvas builder sh -c "apk add libc++-dev libc++-static && rm /usr/lib/libc++.so /usr/lib/libc++.so.1 /usr/lib/libc++.so.1.0 /usr/lib/libc++abi.so /usr/lib/libc++abi.so.1 /usr/lib/libc++abi.so.1.0 && node ./scripts/build-skia.js"
192-
env:
193-
PYTHONHTTPSVERIFY: 0
182+
run: node ./scripts/build-skia.js --target=x86_64-unknown-linux-musl
194183

195184
- name: Install dependencies
196185
run: yarn install --immutable --mode=skip-build
@@ -257,27 +246,18 @@ jobs:
257246
node-version: 22
258247
cache: 'yarn'
259248

260-
- name: Login to GitHub Container Registry
261-
uses: docker/login-action@v3
249+
- uses: mlugg/setup-zig@v2
262250
with:
263-
registry: ghcr.io
264-
username: ${{ secrets.GH_CONTAINER_UNAME }}
265-
password: ${{ secrets.GH_TOKEN }}
266-
267-
- name: Install libc++-dev-aarch64
268-
run: |
269-
mkdir -p aarch64-linux-musl-cross/llvm/include
270-
mkdir -p aarch64-linux-musl-cross/llvm/lib
271-
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
272-
docker run --platform=linux/arm64 --rm -v $(pwd)/aarch64-linux-musl-cross:/aarch64-linux-musl-cross -w /canvas node:18-alpine sh -c "apk add libc++-dev libc++-static && cp -r /usr/include/c++ /aarch64-linux-musl-cross/llvm/include && cp /usr/lib/libc++.a /aarch64-linux-musl-cross/llvm/lib/libc++.a && cp /usr/lib/libc++abi.a /aarch64-linux-musl-cross/llvm/lib/libc++abi.a"
251+
version: 0.15.1
252+
- name: Install cargo-zigbuild
253+
uses: taiki-e/install-action@v2
254+
env:
255+
GITHUB_TOKEN: ${{ github.token }}
256+
with:
257+
tool: cargo-zigbuild
273258

274259
- name: Compile skia
275-
run: |
276-
docker pull ghcr.io/brooooooklyn/canvas/musl-builder:lts
277-
docker tag ghcr.io/brooooooklyn/canvas/musl-builder:lts builder
278-
docker run --rm -v $(pwd):/canvas -w /canvas builder sh -c "cp -r /canvas/aarch64-linux-musl-cross/llvm/include/c++ /aarch64-linux-musl-cross/include && cp /canvas/aarch64-linux-musl-cross/llvm/lib/* /aarch64-linux-musl-cross/lib && node ./scripts/build-skia.js --target=aarch64-unknown-linux-musl"
279-
env:
280-
PYTHONHTTPSVERIFY: 0
260+
run: node ./scripts/build-skia.js --target=aarch64-unknown-linux-musl
281261

282262
- name: Install dependencies
283263
run: yarn install --immutable --mode=skip-build
@@ -293,7 +273,7 @@ jobs:
293273
name: stable - armv7-linux - build skia
294274
runs-on: ubuntu-latest
295275
container:
296-
image: debian:buster
276+
image: debian:bullseye
297277

298278
steps:
299279
- name: Setup tools
@@ -310,8 +290,21 @@ jobs:
310290
with:
311291
node-version: 22
312292

293+
- name: Sync deps
294+
uses: nick-fields/retry@v3
295+
with:
296+
timeout_minutes: 10
297+
max_attempts: 5
298+
command: |
299+
cd skia
300+
python ./tools/git-sync-deps
301+
env:
302+
PYTHONHTTPSVERIFY: 0
303+
313304
- name: Compile skia
314305
run: node ./scripts/build-skia.js --target=armv7-unknown-linux-gnueabihf
306+
env:
307+
SKIP_SYNC_SK_DEPS: 0
315308

316309
- name: Install dependencies
317310
run: |

README-zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# `skr canvas`
22

33
![CI](https://github.com/Brooooooklyn/canvas/workflows/CI/badge.svg)
4-
![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm138-hotpink)
4+
![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm140-hotpink)
55
[![install size](https://packagephobia.com/badge?p=@napi-rs/canvas)](https://packagephobia.com/result?p=@napi-rs/canvas)
66
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/canvas.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/canvas?minimal=true)
77

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# `skr canvas`
22

33
[![CI](https://github.com/Brooooooklyn/canvas/actions/workflows/CI.yaml/badge.svg)](https://github.com/Brooooooklyn/canvas/actions/workflows/CI.yaml)
4-
![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm138-hotpink)
4+
![Skia Version](https://img.shields.io/badge/Skia-chrome%2Fm140-hotpink)
55
[![install size](https://packagephobia.com/badge?p=@napi-rs/canvas)](https://packagephobia.com/result?p=@napi-rs/canvas)
66
[![Downloads](https://img.shields.io/npm/dm/@napi-rs/canvas.svg?sanitize=true)](https://npmcharts.com/compare/@napi-rs/canvas?minimal=true)
77

-16 Bytes
Loading

__test__/svg-canvas.spec.ts.md

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

__test__/svg-canvas.spec.ts.snap

142 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)