desktop.toml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. [tasks.env_check]
  2. dependencies = ["echo_env", "install_flutter_protobuf"]
  3. condition = { env_set = [
  4. "BUILD_FLAG",
  5. "RUST_COMPILE_TARGET",
  6. "CRATE_TYPE",
  7. "TARGET_OS",
  8. ], channels = [
  9. "stable",
  10. ] }
  11. [tasks.appflowy-core-dev]
  12. mac_alias = "appflowy-core-dev-macos"
  13. windows_alias = "appflowy-core-dev-windows"
  14. linux_alias = "appflowy-core-dev-linux"
  15. [tasks.appflowy-core-dev-macos]
  16. category = "Build"
  17. dependencies = ["env_check"]
  18. run_task = { name = [
  19. "setup-crate-type",
  20. "sdk-build",
  21. "post-desktop",
  22. "restore-crate-type",
  23. ] }
  24. [tasks.appflowy-core-dev-windows]
  25. category = "Build"
  26. dependencies = ["env_check"]
  27. run_task = { name = [
  28. "setup-crate-type",
  29. "sdk-build",
  30. "post-desktop",
  31. "restore-crate-type",
  32. ] }
  33. [tasks.appflowy-core-dev-linux]
  34. category = "Build"
  35. dependencies = ["env_check"]
  36. run_task = { name = [
  37. "setup-crate-type",
  38. "sdk-build",
  39. "post-desktop",
  40. "restore-crate-type",
  41. ] }
  42. #
  43. [tasks.sdk-build]
  44. private = true
  45. script = [
  46. """
  47. cd rust-lib/
  48. rustup show
  49. echo cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  50. cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  51. cd ../
  52. """,
  53. ]
  54. script_runner = "@shell"
  55. [tasks.sdk-build-android]
  56. private = true
  57. script = [
  58. """
  59. cd rust-lib/
  60. rustup show
  61. rustup target add aarch64-linux-android \
  62. armv7-linux-androideabi \
  63. i686-linux-android \
  64. x86_64-linux-android
  65. DEST=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/android/app/src/main/jniLibs
  66. rm -rf $DEST/arm64-v8a \
  67. $DEST/armeabi-v7a \
  68. $DEST/x86 \
  69. $DEST/x86_64
  70. cargo ndk \
  71. -t arm64-v8a \
  72. -t armeabi-v7a \
  73. -t x86 \
  74. -t x86_64 \
  75. -o $DEST build
  76. cd ../
  77. """,
  78. ]
  79. script_runner = "@shell"
  80. [tasks.sdk-build.windows]
  81. private = true
  82. script = [
  83. """
  84. cd rust-lib
  85. exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  86. cd ..
  87. """,
  88. ]
  89. script_runner = "@duckscript"
  90. #
  91. [tasks.appflowy-core-release]
  92. description = "Build flowy sdk in release mode"
  93. category = "Build"
  94. dependencies = ["env_check"]
  95. run_task = { name = [
  96. "setup-crate-type",
  97. "sdk-release-build",
  98. "post-desktop",
  99. "restore-crate-type",
  100. ] }
  101. #
  102. [tasks.sdk-release-build]
  103. script = [
  104. """
  105. cd rust-lib/
  106. cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  107. cd ../
  108. """,
  109. ]
  110. script_runner = "@shell"
  111. #
  112. [tasks.post-desktop]
  113. mac_alias = "post-desktop-macos"
  114. windows_alias = "post-desktop-windows"
  115. linux_alias = "post-desktop-linux"
  116. [tasks.post-desktop-macos]
  117. private = true
  118. script = [
  119. """
  120. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  121. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/packages/appflowy_backend/${TARGET_OS}
  122. lib = set lib${LIB_NAME}.${LIB_EXT}
  123. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  124. ${dart_ffi_dir}/${lib}
  125. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  126. ${dart_ffi_dir}/Classes/binding.h
  127. """,
  128. ]
  129. script_runner = "@duckscript"
  130. [tasks.post-desktop-windows]
  131. private = true
  132. script = [
  133. """
  134. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  135. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/windows/flutter/dart_ffi
  136. lib = set ${LIB_NAME}.${LIB_EXT}
  137. # copy dll
  138. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  139. ${dart_ffi_dir}/${lib}
  140. # copy binding.h
  141. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  142. ${dart_ffi_dir}/binding.h
  143. """,
  144. ]
  145. script_runner = "@duckscript"
  146. [tasks.post-desktop-linux]
  147. private = true
  148. script = [
  149. """
  150. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  151. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/linux/flutter/dart_ffi
  152. lib = set lib${LIB_NAME}.${LIB_EXT}
  153. # copy dll
  154. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  155. ${dart_ffi_dir}/${lib}
  156. # copy binding.h
  157. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  158. ${dart_ffi_dir}/binding.h
  159. """,
  160. ]
  161. script_runner = "@duckscript"