Skip to content

ajinasokan/flutter_curl_binary

Repository files navigation

Dart script to build curl for iOS and Android

Builds curl native lib in following config:

  • HTTP3 with quiche
  • HTTP2 with nghttp2
  • Brotli
  • Android lib as AAR (arm64-v8a, armeabi-v7a, x86_64)
  • iOS lib as xcframework (arm64 iphoneos, arm64 iphonesimulator, x86_64 iphonesimulator)
  • macOS lib framework (arm64 Apple Silicon, x86_64 Intel)

Binaries are available to download in the releases.

Setup

Tested in a MacBook Pro with M1 Max, macOS Ventura 13.2.1

Requirements:

  • dart
  • git
  • autoconf
  • automake
  • libtool
  • cmake
  • pkg-config
  • go
  • rust
  • cargo-ndk

Rust targets:

  • aarch64-linux-android
  • armv7-linux-androideabi
  • x86_64-linux-android
  • aarch64-apple-ios
  • x86_64-apple-ios
  • x86_64-apple-darwin
  • aarch64-apple-darwin

Running script

$ dart main.dart clean cloneRepos patchQuiche patchCurl setupDirs

# clones git repos, applies patches

$ dart main.dart alliOS

# output in build/ios/Curl.xcframework

$ dart main.dart allmacOS

# output in build/ios/Curl.framework

$ dart main.dart allAndroid

# output in build/android/Curl.aar

References