ci(windows): pass --llvm-path to bridge codegen so ffigen finds libclang
build-windows / build-windows-x64 (push) Failing after 1h44m8s

This commit is contained in:
2026-05-04 20:02:23 +02:00
parent 571798c953
commit f831ff38b8
+17
View File
@@ -13,6 +13,9 @@ on:
env:
RUST_VERSION: "1.75"
LLVM_VERSION: "15.0.6"
# Where provision.ps1 installs LLVM. ffigen and flutter_rust_bridge_codegen need
# the install root (they append bin\libclang.dll themselves).
LLVM_HOME: 'C:\tools\llvm-15.0.6'
FLUTTER_VERSION: "3.24.5"
VCPKG_COMMIT_ID: "120deac3062162151622ca4860575a33844ba10b"
CARGO_EXPAND_VERSION: "1.0.95"
@@ -121,13 +124,27 @@ jobs:
- name: Generate Rust <-> Dart bridge
shell: bash
env:
# ffigen searches a hardcoded list of locations for libclang.dll and does
# not honor LIBCLANG_PATH; the --llvm-path flag below is what matters.
# Setting LIBCLANG_PATH anyway because some other Rust crates (e.g. bindgen)
# do read it during the build that follows.
LIBCLANG_PATH: '${{ env.LLVM_HOME }}\bin'
run: |
# Belt-and-suspenders: also prepend cargo-tools to PATH here, in case
# GITHUB_PATH propagation from the previous step doesn't take effect.
export PATH="/c/cargo-tools/bin:$PATH"
command -v flutter_rust_bridge_codegen || { echo "tool not on PATH; PATH=$PATH"; exit 1; }
if [ ! -f "${LIBCLANG_PATH}/libclang.dll" ]; then
echo "libclang.dll not found at ${LIBCLANG_PATH}"
ls "${LIBCLANG_PATH}" || true
exit 1
fi
pushd flutter && flutter pub get && popd
flutter_rust_bridge_codegen \
--llvm-path "${LLVM_HOME}" \
--rust-input ./src/flutter_ffi.rs \
--dart-output ./flutter/lib/generated_bridge.dart \
--c-output ./flutter/macos/Runner/bridge_generated.h