rust-to-flutter/README.md
Flux 5749f0a130
Update README.md
x86_64-apple-ios conditional
2025-01-21 17:14:33 +02:00

1.5 KiB

Rust to Flutter Build Script

This script compiles a Rust library for both Android and iOS and copies the generated libraries to the appropriate Flutter project directories.

Features:

  • Installs missing cross-compilation targets.
  • Compiles Rust for Android.
  • Conditionally compiles Rust for iOS if running on macOS.
  • Optionally includes x86 and x86_64 Android/iOS targets using the -x flag.
  • Automatically cleans the build directory before compiling.
  • Copies .so (Android) and .dylib (iOS) files to the Flutter project.

Usage:

  1. Ensure the following are installed:

    • cargo-ndk: Install via cargo install cargo-ndk.
    • Android NDK (set ANDROID_NDK_HOME or ANDROID_SDK_ROOT).
    • Rust toolchains for iOS targets if compiling on macOS.
  2. Run the script:

    ./rust_to_flutter.sh [-x] <path_to_rust_project> <path_to_flutter_project>
    
    • The optional -x flag includes x86 and x86_64 targets for Android.

Examples:

  • Standard build for Android and (on macOS) iOS:
    ./rust_to_flutter.sh ./rust_project ./flutter_project
    
  • Include x86 and x86_64 targets for Android:
    ./rust_to_flutter.sh -x ./rust_project ./flutter_project
    

Notes:

  • Android libraries are copied to android/app/src/main/jniLibs/<arch>.
  • iOS libraries are copied to the ios directory.

Additional Information:

  • iOS compilation is skipped automatically if the script is not running on macOS.
  • The script checks for missing Rust cross-compilation targets and installs them as needed.