Build and release automation for TotalCross Skia prebuilts.
This repository is responsible for:
- pinning the exact upstream Skia commit used by TotalCross
- pinning the exact
depot_toolsrevision used to build it - storing local build scripts and optional patches
- packaging platform-specific Skia binaries
- publishing GitHub Release assets consumed by the main TotalCross repository
Implemented:
- macOS
arm64build script - macOS
x86_64build script - Linux
x86_64build script - Linux
armv7lbuild script - Android
arm64-v8abuild script - Android
armeabi-v7abuild script - dev bundle packaging for
modules/skia/includeandmodules/skia/src/gpu/gl - manifest pinned to the current inputs from
~/repos/skia-build
Planned next:
- Linux
aarch64build recipe - release workflow upload steps
- patch application flow
.
├── .github/workflows/
├── depot_tools/ # pinned depot_tools submodule
├── patches/
├── scripts/
├── skia/ # upstream Skia submodule
├── LICENSE
├── README.md
├── THIRD_PARTY_NOTICES.md
└── manifest.json
Suggested binary assets:
libskia-macos-arm64.alibskia-macos-x86_64.alibskia-linux-aarch64.alibskia-linux-armv7l.alibskia-linux-x86_64.alibskia-android-arm64-v8a.solibskia-android-armeabi-v7a.so
Suggested shared dev bundle:
skia-dev-<version>.tar.gz
The dev bundle should contain:
modules/skia/
include/
src/gpu/gl/
Recommended tag format:
skia-<upstream-commit>-r1- example:
skia-158dc9d7-r1
skia:158dc9d7d4cafb177b99b68c5dc502f8f4282092depot_tools:e868546ad82d7d25eb0a925825d033c355e28152
These values were copied from the existing local ~/repos/skia-build setup.
That repository has some historical script drift, so this repository uses the
current pinned submodule revisions together with the effective macOS build
configuration found in the generated args.gn.
The main TotalCross repository should consume these artifacts through GitHub Releases, using fixed tags and SHA256 checksums.
After adding the Skia submodule, a typical local flow is:
git submodule update --init --recursive
bash scripts/build-macos-arm64.sh
bash scripts/build-macos-x86_64.sh
bash scripts/build-linux-x86_64.sh
bash scripts/build-linux-armv7l.sh
bash scripts/build-android-arm64.sh
bash scripts/build-android-armv7.sh
bash scripts/package-dev-bundle.shArtifacts will be written to dist/.
Example usage
gh release create skia-158dc9d7-r1 \
dist/libskia-android-arm64-v8a.so \
dist/libskia-android-armeabi-v7a.so \
dist/libskia-ios-universal.a \
dist/libskia-linux-aarch64.a \
dist/libskia-linux-armv7l.a \
dist/libskia-linux-x86_64.a \
dist/libskia-macos-arm64.a \
dist/libskia-macos-x86_64.a \
dist/skia-dev-158dc9d7.tar.gz \
dist/SHA256SUMS \
--repo TotalCross/totalcross-skia-build \
--title "Skia prebuilts 158dc9d7 r1" \
--notes "Skia prebuilts for TotalCross.
Skia commit: 158dc9d7d4cafb177b99b68c5dc502f8f4282092
depot_tools commit: e868546ad82d7d25eb0a925825d033c355e28152"This repository is MIT-licensed for its own scripts and automation. Upstream Skia code and generated artifacts remain subject to Skia's original license and any other applicable third-party licenses.