Перейти к файлу
James Walmsley c86dbdd736 [HARFBUZZ] Always statically build harfbuzz. 2022-06-27 22:12:07 +01:00
.github/workflows [WINDOWS] Use MSVC development environment 2022-06-25 14:58:30 +01:00
configs [WASM] Initial WASM build. 2022-05-02 19:44:18 +01:00
docker/skiabuild [DOCKER] Containers for wasm. 2022-05-02 18:40:01 +01:00
libavalonia.skia [LIB] Added some quick build instructions. 2022-05-03 19:36:13 +01:00
recipes/skia [HARFBUZZ] Always statically build harfbuzz. 2022-06-27 22:12:07 +01:00
ve-root@76da1b6c04 [HARFBUZZ] Always statically build harfbuzz. 2022-06-27 22:12:07 +01:00
.gitignore [SKIABUILD] Initial build-recipe and Docker containers for skiabuild 2022-04-04 10:42:24 +00:00
.gitmodules [SKIABUILD] Initial build-recipe and Docker containers for skiabuild 2022-04-04 10:42:24 +00:00
Makefile initial windows build script. 2022-05-02 13:30:53 +01:00
README.md [AVALONIA] Added symbol versions and build variants. 2022-04-04 22:18:51 +00:00

README.md

SkiaBuild

Build Skia x-plat

Cross-platform meta build of skia for Avalonia

Build System

The top-level build system is driven by a Make based tool called ve-root Described in a sentence: ve-root is a simplified version of bitbake / yocto for generating complex sysroots and root file-systems.

How to Build libavalonia.skia for x86_64-linux-gnu

# Choose the build configuration being built
make skia_defconfig

# Enter the docker container (this should get pulled, as CI has built it for you).
make docker

# Build recipe
make

la -la out/skia
total 13520
drwxr-xr-x 1 james james       94 Apr  4 18:09 ./
drwxr-xr-x 1 james james        8 Apr  4 17:32 ../
-rw-r--r-- 1 james james      236 Apr  4 17:32 meson.toolchain
drwxr-xr-x 1 james james        6 Apr  4 17:33 sysroot/
-rw-r--r-- 1 james james 13835706 Apr  4 18:09 sysroot.tar.gz

ls -la out/skia/sysroot/usr/local/lib64
total 38724
drwxr-xr-x 1 james james      424 Apr  4 19:20 ./
drwxr-xr-x 1 james james       46 Apr  4 17:57 ../
-rwxr-xr-x 1 james james 10858032 Apr  4 19:20 libavalonia.skia.so*
-rw-r--r-- 1 james james 25665680 Apr  4 19:18 libskia.a
drwxr-xr-x 1 james james      104 Apr  4 19:18 pkgconfig/

Build Variants

The main build variant (from skia_defconfig) is for x86_64-linux-gnu. The other variants will be configured by:

make skia_aarch64-linux-gnu_defconfig
make skia_i686-linux-gnu_defconfig
make skia_x86_86-linux-alpine_defconfig

# etc etc

libavalonia.skia

The main library sources for the avalonia.skia bindings library can be found under: libavalonia.skia

Add sources to: meson.build

etc.

Keeping the library within meson, built by ve-root will ensure everything gets built correctly and consistently.

Using the make docker command will enter the build container as your current user for development. This means you can build your libraries within the docker build system, and then link to it on your development host by linking to the output libraries / sysroot.