Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ajinasokan/flutter_curl_binary
Dart script to build curl for Android, iOS and macOS
https://github.com/ajinasokan/flutter_curl_binary
android curl dart ios libcurl macos
Last synced: 2 months ago
JSON representation
Dart script to build curl for Android, iOS and macOS
- Host: GitHub
- URL: https://github.com/ajinasokan/flutter_curl_binary
- Owner: ajinasokan
- License: mit
- Created: 2022-12-13T08:06:26.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-03T07:32:55.000Z (over 1 year ago)
- Last Synced: 2024-09-30T02:40:59.936Z (3 months ago)
- Topics: android, curl, dart, ios, libcurl, macos
- Language: Dart
- Homepage:
- Size: 17.6 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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-ndkRust 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
```sh
$ 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
- curl - https://github.com/curl/curl
- Build process - https://curl.se/docs/http3.html
- Brotli - https://github.com/google/brotli
- Quiche - https://github.com/cloudflare/quiche
- ngHTTP2 - https://github.com/nghttp2/nghttp2
- c-ares - https://github.com/c-ares/c-ares