# 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_flutter_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"