AppFlowy/frontend/scripts/makefile/desktop.toml
Nathan.fooo 6a36bcd31d
chore: add sqlite feature flag (#1683)
* chore: add sqlite feature flag

* chore: fix clippy warings

* ci: fix clippy

* chore: add rev file persistence

* ci: fix clippy

Co-authored-by: nathan <nathan@appflowy.io>
2023-01-12 13:09:08 +08:00

271 lines
6.9 KiB
TOML

# cargo make --profile production task
# Run the task with profile, e.g.
# cargo make --profile development-mac appflowy-sdk-dev
# cargo make --profile production-windows-x86 appflowy-sdk-dev
[tasks.env_check]
dependencies = ["echo_env", "install_protobuf"]
condition = { env_set = [
"BUILD_FLAG",
"RUST_COMPILE_TARGET",
"CRATE_TYPE",
"TARGET_OS",
], channels = [
"stable",
] }
[tasks.appflowy-sdk-dev]
mac_alias = "appflowy-sdk-dev-macos"
windows_alias = "appflowy-sdk-dev-windows"
linux_alias = "appflowy-sdk-dev-linux"
[tasks.appflowy-sdk-dev-android]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-build-android",
"restore-crate-type",
] }
[tasks.appflowy-sdk-dev-macos]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-build",
"post-desktop",
"restore-crate-type",
] }
[tasks.appflowy-sdk-dev-windows]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-build",
"post-desktop",
"restore-crate-type",
] }
[tasks.appflowy-sdk-dev-linux]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-build",
"post-desktop",
"restore-crate-type",
] }
#
[tasks.sdk-build]
private = true
script = [
"""
cd rust-lib/
rustup show
echo cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cd ../
""",
]
script_runner = "@shell"
[tasks.sdk-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}/app_flowy/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-build.windows]
private = true
script = [
"""
cd rust-lib
exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cd ..
""",
]
script_runner = "@duckscript"
#
[tasks.appflowy-sdk-release]
description = "Build flowy sdk in release mode"
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-crate-type",
"sdk-release-build",
"post-desktop",
"restore-crate-type",
] }
#
[tasks.sdk-release-build]
script = [
"""
cd rust-lib/
cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cd ../
""",
]
script_runner = "@shell"
#
[tasks.post-desktop]
mac_alias = "post-desktop-macos"
windows_alias = "post-desktop-windows"
linux_alias = "post-desktop-linux"
[tasks.post-desktop-macos]
private = true
script = [
"""
echo "🚀 🚀 🚀 Flowy-SDK(macOS) build success"
dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/appflowy_backend/${TARGET_OS}
lib = set lib${LIB_NAME}.${LIB_EXT}
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
${dart_ffi_dir}/${lib}
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
${dart_ffi_dir}/Classes/binding.h
""",
]
script_runner = "@duckscript"
[tasks.post-desktop-windows]
private = true
script = [
"""
echo "🚀 🚀 🚀 Flowy-SDK(windows) build success"
dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/windows/flutter/dart_ffi
lib = set ${LIB_NAME}.${LIB_EXT}
# copy dll
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
${dart_ffi_dir}/${lib}
# copy binding.h
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
${dart_ffi_dir}/binding.h
""",
]
script_runner = "@duckscript"
[tasks.post-desktop-linux]
private = true
script = [
"""
echo "🚀 🚀 🚀 Flowy-SDK(linux) build success"
dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/linux/flutter/dart_ffi
lib = set lib${LIB_NAME}.${LIB_EXT}
# copy dll
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
${dart_ffi_dir}/${lib}
# copy binding.h
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
${dart_ffi_dir}/binding.h
""",
]
script_runner = "@duckscript"
[tasks.build-test-lib]
category = "Build"
dependencies = ["env_check"]
run_task = { name = [
"setup-test-crate-type",
"build-test-backend",
"copy-to-sandbox-folder",
"restore-test-crate-type",
] }
[tasks.build-test-backend]
mac_alias = "build-test-backend-default"
windows_alias = "build-test-backend-widnows"
linux_alias = "build-test-backend-default"
[tasks.build-test-backend-default]
private = true
script = [
"""
cd rust-lib/
rustup show
echo cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
RUST_LOG=${RUST_LOG} cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cd ../
""",
]
script_runner = "@shell"
[tasks.build-test-backend-widnows]
private = true
script = [
"""
cd rust-lib/
rustup show
echo cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
cd ../
""",
]
script_runner = "@shell"
[tasks.copy-to-sandbox-folder]
mac_alias = "copy-to-sandbox-folder-default"
windows_alias = "copy-to-sandbox-folder-windows"
linux_alias = "copy-to-sandbox-folder-default"
[tasks.copy-to-sandbox-folder-windows]
private = true
script = [
"""
# Copy the appflowy_backend lib to system temp directory for flutter unit test.
lib = set ${LIB_NAME}.${TEST_LIB_EXT}
dest = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/.sandbox/${lib}
rm ${dest}
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${TEST_COMPILE_TARGET}/${TEST_BUILD_FLAG}/${lib} \
${dest}
""",
]
script_runner = "@duckscript"
[tasks.copy-to-sandbox-folder-default]
private = true
script = [
"""
# Copy the appflowy_backend lib to system temp directory for flutter unit test.
lib = set lib${LIB_NAME}.${TEST_LIB_EXT}
dest = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/.sandbox/${lib}
rm ${dest}
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${TEST_COMPILE_TARGET}/${TEST_BUILD_FLAG}/${lib} \
${dest}
""",
]
script_runner = "@duckscript"