#!/bin/bash # fix-windows-ndk.sh — Patches all ninja build files to add libc++_shared.so # Workaround for Windows NDK CMake bug where c++_shared is not auto-linked # Run this AFTER gradle configure but BEFORE gradle build MOBILE_RN="$(cd "$(dirname "$0")/.." && pwd)" NDK_DIR="$HOME/Android/Sdk/ndk/27.1.12297006" LIBCPP="$NDK_DIR/toolchains/llvm/prebuilt/windows-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so" LIBCPP_WIN=$(echo "$LIBCPP" | sed 's|/c/|C:/|;s|/|/|g') echo "Patching ninja files with libc++_shared.so..." find "$MOBILE_RN" -name "build.ninja" -path "*arm64-v8a*" 2>/dev/null | while read ninja; do if grep -q "\-latomic" "$ninja" && ! grep -q "libc++_shared" "$ninja"; then sed -i "s|-latomic -lm|\"$LIBCPP_WIN\" -latomic -lm|g" "$ninja" echo " Patched: $ninja" fi done echo "Done."