Add Tizen x64 and arm64 native build support#3620
Merged
Merged
Conversation
This was referenced Mar 31, 2026
mattleibow
force-pushed
the
dev/tizen-x64-arm64
branch
2 times, most recently
from
April 2, 2026 00:36
bac7c53 to
4ecd2cd
Compare
This was referenced Apr 2, 2026
Add 64-bit (x86_64, aarch64) native library builds for Tizen alongside existing 32-bit (arm, x86) builds. Native build (native/tizen/build.cake): - Refactored with helper functions and SetProjectProfile() - armel/i586 use mobile-6.0 rootstraps - x86_64/aarch64 use tizen-8.0 rootstraps Submodule (externals/skia): - Add x64 and arm64 target_cpu branches to GN BUILDCONFIG.gn - x86_64 uses tizen-8.0-emulator64.core rootstrap - aarch64 uses tizen-8.0-device64.core rootstrap Packaging: - Add tizen-x64 and tizen-arm64 entries to IncludeNativeAssets targets - Add x86_64 and aarch64 PackageFile entries to NativeAssets.Tizen csproj RIDs match Samsung's official RuntimeIdentifierGraph.json. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
force-pushed
the
dev/tizen-x64-arm64
branch
from
April 9, 2026 00:00
4ecd2cd to
41aeee4
Compare
Contributor
📦 Try the packages from this PRWarning Do not run these scripts without first reviewing the code in this PR. Step 1 — Download the packages bash / macOS / Linux: curl -fsSL https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.sh | bash -s -- 3620PowerShell / Windows: iex "& { $(irm https://raw.githubusercontent.com/mono/SkiaSharp/main/scripts/get-skiasharp-pr.ps1) } 3620"Step 2 — Add the local NuGet source dotnet nuget add source ~/.skiasharp/hives/pr-3620/packages --name skiasharp-pr-3620More options
Or download manually from Azure Pipelines — look for the Remove the source when you're done: dotnet nuget remove source skiasharp-pr-3620 |
Contributor
|
📖 Documentation Preview The documentation for this PR has been deployed and is available at: 🔗 View Staging Site This preview will be updated automatically when you push new commits to this PR. This comment is automatically updated by the documentation staging workflow. |
…rop defaults The SetProjectProfile regex check threw when the replacement value matched the existing content (e.g. first armel build with mobile-6.0 already set). Use IsMatch before Replace instead of comparing before/after strings. Also update project_def.prop default profiles to tizen-8.0 (the build dynamically sets the correct profile per architecture anyway). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
added a commit
to mono/skia
that referenced
this pull request
Apr 9, 2026
Context: mono/SkiaSharp#3620 Add x64 and arm64 target_cpu branches to the Tizen `is_tizen` block in gn/BUILDCONFIG.gn, enabling 64-bit native library builds for Tizen 8.0. * x64: x86_64-tizen-linux-gnu target with tizen-{ver}-emulator64.core rootstrap * arm64: aarch64-tizen-linux-gnu target with tizen-{ver}-device64.core rootstrap The default ncli_version is bumped from 4.0 to 8.0 since the 64-bit rootstraps require Tizen 8.0. Callers targeting older rootstraps (mobile 6.0 for armel/i586) override ncli_version via GN args, so existing 32-bit builds are unaffected.
Point externals/skia to 8c99e432ff (the squash-merge of PR #175 onto the skiasharp branch) instead of the feature branch commit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
added a commit
that referenced
this pull request
Apr 15, 2026
Split the single Tizen native build job (which builds arm, x86, x64, and arm64 sequentially) into 4 separate parallel jobs, one per architecture. This matches the pattern used by Android, Win32, WinUI, and ANGLE builds. The single-job approach was hitting the 3-hour AzDO worker timeout now that x64 and arm64 architectures were added in #3620. The cake build already supports --buildarch filtering via the Skip() function in native-shared.cake, so no build script changes are needed. Updated templates: - azure-templates-stages-native-windows.yml (active, produces merge artifacts) - azure-templates-stages-native-macos.yml (active) - azure-templates-stages-native-linux.yml (disabled, kept consistent) - azure-templates-stages-native-merge.yml (now references 4 per-arch artifacts) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
added a commit
that referenced
this pull request
Apr 15, 2026
Split the single Tizen native build job (which builds arm, x86, x64, and arm64 sequentially) into 4 separate parallel jobs, one per architecture. This matches the pattern used by Android, Win32, WinUI, and ANGLE builds. The single-job approach was hitting the 3-hour AzDO worker timeout now that x64 and arm64 architectures were added in #3620. The cake build already supports --buildarch filtering via the Skip() function in native-shared.cake, so no build script changes are needed. Updated templates: - azure-templates-stages-native-windows.yml (active, produces merge artifacts) - azure-templates-stages-native-macos.yml (active) - azure-templates-stages-native-linux.yml (disabled, kept consistent) - azure-templates-stages-native-merge.yml (now references 4 per-arch artifacts) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
added a commit
that referenced
this pull request
Apr 15, 2026
Split the single Tizen native build job (which builds arm, x86, x64, and arm64 sequentially) into 4 separate parallel jobs, one per architecture. This matches the pattern used by Android, Win32, WinUI, and ANGLE builds. The single-job approach was hitting the 3-hour AzDO worker timeout now that x64 and arm64 architectures were added in #3620. The cake build already supports --buildarch filtering via the Skip() function in native-shared.cake, so no build script changes are needed. Updated templates: - azure-templates-stages-native-windows.yml (active, produces merge artifacts) - azure-templates-stages-native-macos.yml (active) - azure-templates-stages-native-linux.yml (disabled, kept consistent) - azure-templates-stages-native-merge.yml (now references 4 per-arch artifacts) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
mattleibow
added a commit
that referenced
this pull request
Apr 15, 2026
[build] Split Tizen native CI into per-architecture jobs (#3672) Context: #2933 Context: #3620 After #3620 added x64 and arm64 Tizen build support, the single Tizen CI job built all 4 architectures sequentially (arm, x86, x64, arm64), hitting the 3-hour AzDO worker timeout. This was the sole failure in 5 of the last 6 main builds. Split the monolithic Tizen job into 4 parallel per-architecture jobs on both macOS and Windows, matching the existing pattern used by Android, Win32, WinUI, and ANGLE. The already-disabled Linux Tizen job (#2933) is removed entirely. The merge stage now references the 4 per-arch Windows artifact names.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add 64-bit (x86_64, aarch64) native library builds for Tizen alongside existing 32-bit (arm, x86) builds.
Architecture matrix
Changes
externals/skianative/tizen/build.cakeSetProjectProfile()helper; builds all 4 architectures; cleans stale build dirs between arch switchesbinding/IncludeNativeAssets.SkiaSharp.targetsbinding/IncludeNativeAssets.HarfBuzzSharp.targetsbinding/SkiaSharp.NativeAssets.Tizen/*.csprojbinding/HarfBuzzSharp.NativeAssets.Tizen/*.csprojRIDs match Samsung's official
RuntimeIdentifierGraph.json.Depends on