desktop.toml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  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-android]
  16. category = "Build"
  17. dependencies = ["env_check"]
  18. run_task = { name = [
  19. "setup-crate-type",
  20. "sdk-build-android",
  21. "restore-crate-type",
  22. ] }
  23. [tasks.appflowy-core-dev-macos]
  24. category = "Build"
  25. dependencies = ["env_check"]
  26. run_task = { name = [
  27. "setup-crate-type",
  28. "sdk-build",
  29. "post-desktop",
  30. "restore-crate-type",
  31. ] }
  32. [tasks.appflowy-core-dev-windows]
  33. category = "Build"
  34. dependencies = ["env_check"]
  35. run_task = { name = [
  36. "setup-crate-type",
  37. "sdk-build",
  38. "post-desktop",
  39. "restore-crate-type",
  40. ] }
  41. [tasks.appflowy-core-dev-linux]
  42. category = "Build"
  43. dependencies = ["env_check"]
  44. run_task = { name = [
  45. "setup-crate-type",
  46. "sdk-build",
  47. "post-desktop",
  48. "restore-crate-type",
  49. ] }
  50. #
  51. [tasks.sdk-build]
  52. private = true
  53. script = [
  54. """
  55. cd rust-lib/
  56. rustup show
  57. echo cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  58. cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  59. cd ../
  60. """,
  61. ]
  62. script_runner = "@shell"
  63. [tasks.sdk-build-android]
  64. private = true
  65. script = [
  66. """
  67. cd rust-lib/
  68. rustup show
  69. rustup target add aarch64-linux-android \
  70. armv7-linux-androideabi \
  71. i686-linux-android \
  72. x86_64-linux-android
  73. DEST=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/android/app/src/main/jniLibs
  74. rm -rf $DEST/arm64-v8a \
  75. $DEST/armeabi-v7a \
  76. $DEST/x86 \
  77. $DEST/x86_64
  78. cargo ndk \
  79. -t arm64-v8a \
  80. -t armeabi-v7a \
  81. -t x86 \
  82. -t x86_64 \
  83. -o $DEST build
  84. cd ../
  85. """,
  86. ]
  87. script_runner = "@shell"
  88. [tasks.sdk-build.windows]
  89. private = true
  90. script = [
  91. """
  92. cd rust-lib
  93. exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  94. cd ..
  95. """,
  96. ]
  97. script_runner = "@duckscript"
  98. #
  99. [tasks.appflowy-core-release]
  100. description = "Build flowy sdk in release mode"
  101. category = "Build"
  102. dependencies = ["env_check"]
  103. run_task = { name = [
  104. "setup-crate-type",
  105. "sdk-release-build",
  106. "post-desktop",
  107. "restore-crate-type",
  108. ] }
  109. #
  110. [tasks.sdk-release-build]
  111. script = [
  112. """
  113. cd rust-lib/
  114. cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  115. cd ../
  116. """,
  117. ]
  118. script_runner = "@shell"
  119. #
  120. [tasks.post-desktop]
  121. mac_alias = "post-desktop-macos"
  122. windows_alias = "post-desktop-windows"
  123. linux_alias = "post-desktop-linux"
  124. [tasks.post-desktop-macos]
  125. private = true
  126. script = [
  127. """
  128. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  129. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/packages/appflowy_backend/${TARGET_OS}
  130. lib = set lib${LIB_NAME}.${LIB_EXT}
  131. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  132. ${dart_ffi_dir}/${lib}
  133. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  134. ${dart_ffi_dir}/Classes/binding.h
  135. """,
  136. ]
  137. script_runner = "@duckscript"
  138. [tasks.post-desktop-windows]
  139. private = true
  140. script = [
  141. """
  142. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  143. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/windows/flutter/dart_ffi
  144. lib = set ${LIB_NAME}.${LIB_EXT}
  145. # copy dll
  146. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  147. ${dart_ffi_dir}/${lib}
  148. # copy binding.h
  149. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  150. ${dart_ffi_dir}/binding.h
  151. """,
  152. ]
  153. script_runner = "@duckscript"
  154. [tasks.post-desktop-linux]
  155. private = true
  156. script = [
  157. """
  158. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  159. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/linux/flutter/dart_ffi
  160. lib = set lib${LIB_NAME}.${LIB_EXT}
  161. # copy dll
  162. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  163. ${dart_ffi_dir}/${lib}
  164. # copy binding.h
  165. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  166. ${dart_ffi_dir}/binding.h
  167. """,
  168. ]
  169. script_runner = "@duckscript"
  170. [tasks.build_test_backend]
  171. category = "Build"
  172. dependencies = ["env_check"]
  173. run_task = { name = [
  174. "setup-test-crate-type",
  175. "compile_test_backend",
  176. "copy-to-sandbox-folder",
  177. "restore-test-crate-type",
  178. ] }
  179. [tasks.compile_test_backend]
  180. mac_alias = "compile_test_backend_default"
  181. windows_alias = "compile_test_backend_windows"
  182. linux_alias = "compile_test_backend_default"
  183. [tasks.compile_test_backend_default]
  184. private = true
  185. script = [
  186. """
  187. cd rust-lib/
  188. rustup show
  189. echo RUST_LOG=${RUST_LOG} cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  190. RUST_LOG=${RUST_LOG} cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  191. cd ../
  192. """,
  193. ]
  194. script_runner = "@shell"
  195. [tasks.compile_test_backend_windows]
  196. private = true
  197. script = [
  198. """
  199. cd rust-lib/
  200. rustup show
  201. echo cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  202. RUST_LOG=${RUST_LOG} cargo build --package=dart-ffi --target ${TEST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  203. cd ../
  204. """,
  205. ]
  206. script_runner = "@shell"
  207. [tasks.copy-to-sandbox-folder]
  208. mac_alias = "copy-to-sandbox-folder-default"
  209. windows_alias = "copy-to-sandbox-folder-windows"
  210. linux_alias = "copy-to-sandbox-folder-default"
  211. [tasks.copy-to-sandbox-folder-windows]
  212. private = true
  213. script = [
  214. """
  215. # Copy the appflowy_backend lib to system temp directory for flutter unit test.
  216. lib = set ${LIB_NAME}.${TEST_LIB_EXT}
  217. dest = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/.sandbox/${lib}
  218. rm ${dest}
  219. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${TEST_COMPILE_TARGET}/${TEST_BUILD_FLAG}/${lib} \
  220. ${dest}
  221. """,
  222. ]
  223. script_runner = "@duckscript"
  224. [tasks.copy-to-sandbox-folder-default]
  225. private = true
  226. script = [
  227. """
  228. # Copy the appflowy_backend lib to system temp directory for flutter unit test.
  229. lib = set lib${LIB_NAME}.${TEST_LIB_EXT}
  230. dest = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/.sandbox/${lib}
  231. rm ${dest}
  232. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${TEST_COMPILE_TARGET}/${TEST_BUILD_FLAG}/${lib} \
  233. ${dest}
  234. """,
  235. ]
  236. script_runner = "@duckscript"