Skia base JSI renderer for Picasso and Nebula
npm install @qlik/react-native-helium
Skia base JSI renderer for Picasso and Nebula
This document provides instructions for building Harfbuzz, ICU and Skia for Android and iOS platforms.
---
Before building, ensure you have the following tools installed and correctly set up.
git --version |python3 --version |ninja --version |cmake --version |meson --version |pkg-config --version |ls $ANDROID_HOME/ndk/ |java -version |👉 Set environment variables in your shell config (~/.zshrc or ~/.bashrc):
``bash`
export ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_NDK=$ANDROID_HOME/ndk/23.1.7779620
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH
|
| Xcode Command Line Tools | clang, ar, strip | xcode-select -p |
| CocoaPods (optional) | Dependency mgmt | pod --version |👉 Make sure SDK paths exist:
`bash
ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
`If these return valid
.sdk folders (e.g., iPhoneOS18.2.sdk), you’re good. ---
📦 Harfbuzz
$3
- Repository: harfbuzz/harfbuzz
- Branch: (Specify branch if needed)
#### Steps
1. Checkout the branch:
`bash
git clone https://github.com/harfbuzz/harfbuzz.git
cd harfbuzz
git checkout
`2. Create a bash script (e.g.,
build_android.sh):
`bash
#!/bin/bash
set -o errexit -o nounset
cd build/android cmake ../.. -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-31 -DCMAKE_BUILD_TYPE=Release -DHB_HAVE_FREETYPE=OFF -DHB_BUILD_SHARED=OFF -GNinja
ninja install
`3. Run the script:
`bash
bash build_android.sh
`⚠️ Note: Building Harfbuzz for Android using Meson currently has known issues. Prefer CMake.
---
$3
- Repository: harfbuzz/harfbuzz
- Branch: (Specify branch if needed)
#### Steps
1. Checkout the branch:
`bash
git clone https://github.com/harfbuzz/harfbuzz.git
cd harfbuzz
git checkout
`2. Create cross files for Simulator and Device builds.
- Simulator Example (
ios_cross_sim.txt)
(see earlier section for full contents) - Device Example (
ios_cross_dev.txt)
(same structure, but with iPhoneOS.platform SDK)3. Run Meson setup:
`bash
meson setup --cross-file ios_cross_dev.txt ios_dev_arm64 -Ddefault_library=static -Dtests="disabled"
`4. Build with Ninja:
`bash
ninja -C ios_dev_arm64
`---
📦 ICU
$3
- Repository: unicode-org/icu
- Branch:
release-70-rc #### Steps
1. Clone the repo & checkout branch:
`bash
git clone https://github.com/unicode-org/icu.git
cd icu
git checkout release-70-rc
`2. Create directories:
`
icu/icu4c/android
icu/icu4c/macOS
`3. Copy build script (
build_icu_android.sh) into icu/icu4c/android.4. Run the script:
`bash
cd icu/icu4c/android
bash build_icu_android.sh
`---
$3
- Repository: dbquarrel/icu4c-xcframework
#### Steps
1. Checkout the repo:
`bash
git clone https://github.com/dbquarrel/icu4c-xcframework.git
cd icu4c-xcframework
git checkout
`---
✅ With this, you’ll be able to build Harfbuzz and ICU for Android and iOS successfully.
---
📦 Skia
$3
- Repositories:
1. chromium.googlesource.com Skia
2. google/skia (GitHub)
- Branch: Yet to find (update once finalized)
#### Steps
1. Clone the repository and checkout branch:
`bash
git clone https://github.com/google/skia.git
cd skia
git checkout
`2. Sync dependencies:
`bash
python tools/git-sync-deps
`3. Copy
android_lib.sh script to the root directory of the repository. 4. Run the script:
`bash
bash android_lib.sh
`---
$3
- Repositories:
1. chromium.googlesource.com Skia
2. google/skia (GitHub)
- Branch: Yet to find (update once finalized)
#### Steps
1. Clone the repository and checkout branch:
`bash
git clone https://github.com/google/skia.git
cd skia
git checkout
`2. Sync dependencies:
`bash
python tools/git-sync-deps
`3. Copy
create-framework.sh script to the root directory of the repository. 4. Run the script:
`bash
bash create-framework.sh
`---
⚠️ Notes
- Ensure the script paths in
android_lib.sh and create-framework.sh are updated correctly before execution.
- The build process may require additional tools such as Python 3, Ninja, CMake, Xcode (for iOS), Android NDK (for Android).
- Some dependencies may take time to download when running git-sync-deps`. ---
Note: where ios/headers has a copy of the skia/include folder
✅ With this guide, you can build Skia for Android and iOS.
MIT