feat: support building on Android (#3713)

* feat: support building on Android

* chore: add CI for mobile platform
This commit is contained in:
Lucas.Xu
2023-10-19 09:55:23 +08:00
committed by GitHub
parent f60462a853
commit e565d0ee32
22 changed files with 356 additions and 123 deletions

View File

@ -72,32 +72,6 @@ script = [
]
script_runner = "@shell"
[tasks.sdk-dev-build-android]
private = true
script = [
"""
cd rust-lib/
rustup show
rustup target add aarch64-linux-android \
armv7-linux-androideabi \
i686-linux-android \
x86_64-linux-android
DEST=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/android/app/src/main/jniLibs
rm -rf $DEST/arm64-v8a \
$DEST/armeabi-v7a \
$DEST/x86 \
$DEST/x86_64
cargo ndk \
-t arm64-v8a \
-t armeabi-v7a \
-t x86 \
-t x86_64 \
-o $DEST build
cd ../
""",
]
script_runner = "@shell"
[tasks.sdk-dev-build.windows]
private = true
script = [
@ -192,4 +166,3 @@ script = [
""",
]
script_runner = "@duckscript"

View File

@ -52,7 +52,16 @@ dependencies = ["appflowy-core-dev-ios"]
run_task = { name = [
"code_generation",
"set-app-version",
"flutter-build",
"flutter-build-ios",
] }
script_runner = "@shell"
[tasks.appflowy-android-dev]
dependencies = ["appflowy-core-dev-android"]
run_task = { name = [
"code_generation",
"set-app-version",
"flutter-build-android",
] }
script_runner = "@shell"
@ -187,6 +196,22 @@ script = ["""
"""]
script_runner = "@shell"
[tasks.flutter-build-ios]
script = ["""
cd appflowy_flutter/
flutter pub get
flutter build ipa --verbose
"""]
script_runner = "@shell"
[tasks.flutter-build-android]
script = ["""
cd appflowy_flutter/
flutter pub get
flutter build apk --split-per-abi --verbose
"""]
script_runner = "@shell"
[tasks.flutter-build.windows]
script = ["""
cd appflowy_flutter

View File

@ -33,6 +33,29 @@ script = [
]
script_runner = "@shell"
[tasks.appflowy-core-dev-android]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-build-android",
"post-mobile-android",
"restore-crate-type",
] }
[tasks.sdk-build-android]
private = true
script = [
"""
cd rust-lib/
rustup show
echo "cargo ndk -t arm64-v8a -t x86_64 -o ./jniLibs build --features "${FLUTTER_DESKTOP_FEATURES}""
cargo ndk -t arm64-v8a -t x86_64 -o ./jniLibs build --features "${FLUTTER_DESKTOP_FEATURES}"
cd ../
""",
]
script_runner = "@shell"
[tasks.post-mobile-ios]
private = true
script = [
@ -53,3 +76,23 @@ script = [
""",
]
script_runner = "@duckscript"
[tasks.post-mobile-android]
script = [
"""
echo "🚀 🚀 🚀 AppFlowy-Core for Android platform build success"
dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/android/app/src/main
lib = set lib${LIB_NAME}.${LIB_EXT}
echo "💻 💻 💻 Copying ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/jniLibs/ to ${dart_ffi_dir}/"
rm -r ${dart_ffi_dir}/jniLibs/
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/jniLibs/ \
${dart_ffi_dir}/
echo "💻 💻 💻 Copying ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h to ${dart_ffi_dir}/Classes/binding.h"
rm -f ${dart_ffi_dir}/Classes/binding.h
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
${dart_ffi_dir}/Classes/binding.h
""",
]
script_runner = "@duckscript"