desktop.toml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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-dev-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-dev-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-dev-build",
  39. "post-desktop",
  40. "restore-crate-type",
  41. ] }
  42. #
  43. [tasks.sdk-dev-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-dev-build.mac]
  56. private = true
  57. script = [
  58. """
  59. cd rust-lib/
  60. rustup show
  61. echo RUSTFLAGS="-C target-cpu=native -C link-arg=-mmacosx-version-min=11.0" cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  62. RUSTFLAGS="-C target-cpu=native -C link-arg=-mmacosx-version-min=11.0" cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  63. cd ../
  64. """,
  65. ]
  66. script_runner = "@shell"
  67. [tasks.sdk-dev-build-android]
  68. private = true
  69. script = [
  70. """
  71. cd rust-lib/
  72. rustup show
  73. rustup target add aarch64-linux-android \
  74. armv7-linux-androideabi \
  75. i686-linux-android \
  76. x86_64-linux-android
  77. DEST=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/android/app/src/main/jniLibs
  78. rm -rf $DEST/arm64-v8a \
  79. $DEST/armeabi-v7a \
  80. $DEST/x86 \
  81. $DEST/x86_64
  82. cargo ndk \
  83. -t arm64-v8a \
  84. -t armeabi-v7a \
  85. -t x86 \
  86. -t x86_64 \
  87. -o $DEST build
  88. cd ../
  89. """,
  90. ]
  91. script_runner = "@shell"
  92. [tasks.sdk-dev-build.windows]
  93. private = true
  94. script = [
  95. """
  96. cd rust-lib
  97. exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  98. cd ..
  99. """,
  100. ]
  101. script_runner = "@duckscript"
  102. #
  103. [tasks.appflowy-core-release]
  104. description = "Build flowy sdk in release mode"
  105. category = "Build"
  106. dependencies = ["env_check"]
  107. run_task = { name = [
  108. "setup-crate-type",
  109. "sdk-release-build",
  110. "post-desktop",
  111. "restore-crate-type",
  112. ] }
  113. #
  114. [tasks.sdk-release-build]
  115. script = [
  116. """
  117. cd rust-lib/
  118. cargo build --profile ${CARGO_PROFILE} --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FLUTTER_DESKTOP_FEATURES}"
  119. cd ../
  120. """,
  121. ]
  122. script_runner = "@shell"
  123. #
  124. [tasks.post-desktop]
  125. mac_alias = "post-desktop-macos"
  126. windows_alias = "post-desktop-windows"
  127. linux_alias = "post-desktop-linux"
  128. [tasks.post-desktop-macos]
  129. private = true
  130. script = [
  131. """
  132. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  133. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/packages/appflowy_backend/${TARGET_OS}
  134. lib = set lib${LIB_NAME}.${LIB_EXT}
  135. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  136. ${dart_ffi_dir}/${lib}
  137. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  138. ${dart_ffi_dir}/Classes/binding.h
  139. """,
  140. ]
  141. script_runner = "@duckscript"
  142. [tasks.post-desktop-windows]
  143. private = true
  144. script = [
  145. """
  146. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  147. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/windows/flutter/dart_ffi
  148. lib = set ${LIB_NAME}.${LIB_EXT}
  149. # copy dll
  150. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  151. ${dart_ffi_dir}/${lib}
  152. # copy binding.h
  153. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  154. ${dart_ffi_dir}/binding.h
  155. """,
  156. ]
  157. script_runner = "@duckscript"
  158. [tasks.post-desktop-linux]
  159. private = true
  160. script = [
  161. """
  162. echo "🚀 🚀 🚀 AppFlowy-Core build success"
  163. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/appflowy_flutter/linux/flutter/dart_ffi
  164. lib = set lib${LIB_NAME}.${LIB_EXT}
  165. # copy dll
  166. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  167. ${dart_ffi_dir}/${lib}
  168. # copy binding.h
  169. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  170. ${dart_ffi_dir}/binding.h
  171. """,
  172. ]
  173. script_runner = "@duckscript"