Bundle wgpu-native into Linux WebGPU amalgamation (#4220)
This commit is contained in:
29
.github/scripts/check-linux-webgpu-amalgam
vendored
Executable file
29
.github/scripts/check-linux-webgpu-amalgam
vendored
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
# Linux-only helper: requires GNU nm long options.
|
||||
set -euo pipefail
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
echo "usage: $0 <path-to-libmbgl-core-amalgam.a>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
archive_path="$1"
|
||||
|
||||
if [[ ! -f "$archive_path" ]]; then
|
||||
echo "archive not found: $archive_path" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unresolved_symbols="$(
|
||||
nm -g --undefined-only "$archive_path" \
|
||||
| grep -E '(^|[[:space:]])U[[:space:]]+wgpu([A-Z]|_)' \
|
||||
|| true
|
||||
)"
|
||||
|
||||
if [[ -n "$unresolved_symbols" ]]; then
|
||||
echo "found unresolved WebGPU symbols in $archive_path" >&2
|
||||
echo "$unresolved_symbols" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "no unresolved WebGPU symbols found in $archive_path"
|
||||
18
.github/workflows/core-release.yml
vendored
18
.github/workflows/core-release.yml
vendored
@@ -85,6 +85,8 @@ jobs:
|
||||
build-linux:
|
||||
needs: [create-release]
|
||||
runs-on: ${{ matrix.runner.os }}
|
||||
env:
|
||||
PRESET_RENDERER: ${{ matrix.preset_renderer || matrix.renderer }}
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
@@ -92,6 +94,9 @@ jobs:
|
||||
runner: { os: ubuntu-latest, arch: x64 }
|
||||
- renderer: vulkan
|
||||
runner: { os: ubuntu-latest, arch: x64 }
|
||||
- renderer: wgpu
|
||||
preset_renderer: webgpu-wgpu
|
||||
runner: { os: ubuntu-latest, arch: x64 }
|
||||
- renderer: opengl
|
||||
runner: { os: ubuntu-24.04-arm, arch: arm64 }
|
||||
- renderer: vulkan
|
||||
@@ -110,13 +115,18 @@ jobs:
|
||||
|
||||
- name: Build mbgl-core for Linux
|
||||
run: |
|
||||
cmake --preset linux-${{ matrix.renderer }} -DCMAKE_CXX_COMPILER_LAUNCHER="" -DMLN_CREATE_AMALGAMATION=ON
|
||||
cmake --build build-linux-${{ matrix.renderer }} --target mbgl-core
|
||||
cmake --preset "linux-${PRESET_RENDERER}" -DCMAKE_CXX_COMPILER_LAUNCHER="" -DMLN_CREATE_AMALGAMATION=ON
|
||||
cmake --build "build-linux-${PRESET_RENDERER}" --target mbgl-core
|
||||
|
||||
- name: Verify Linux WebGPU amalgamation
|
||||
if: matrix.renderer == 'wgpu'
|
||||
run: |
|
||||
.github/scripts/check-linux-webgpu-amalgam "build-linux-${PRESET_RENDERER}/libmbgl-core-amalgam.a"
|
||||
|
||||
- name: Rename artifact
|
||||
run: |
|
||||
cp build-linux-${{ matrix.renderer }}/libmbgl-core.a libmaplibre-native-core-linux-${{ matrix.runner.arch }}-${{ matrix.renderer }}.a
|
||||
cp build-linux-${{ matrix.renderer }}/libmbgl-core-amalgam.a libmaplibre-native-core-amalgam-linux-${{ matrix.runner.arch }}-${{ matrix.renderer }}.a
|
||||
cp "build-linux-${PRESET_RENDERER}/libmbgl-core.a" "libmaplibre-native-core-linux-${{ matrix.runner.arch }}-${{ matrix.renderer }}.a"
|
||||
cp "build-linux-${PRESET_RENDERER}/libmbgl-core-amalgam.a" "libmaplibre-native-core-amalgam-linux-${{ matrix.runner.arch }}-${{ matrix.renderer }}.a"
|
||||
|
||||
- name: Upload Linux artifacts
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
Reference in New Issue
Block a user