desktop.toml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. # cargo make --profile production task
  2. # Run the task with profile, e.g.
  3. # cargo make --profile development-mac flowy-sdk-dev
  4. # cargo make --profile production-windows-x86 flowy-sdk-dev
  5. [tasks.env_check]
  6. dependencies = ["echo_env", "install_protobuf"]
  7. condition = { env_set = [ "BUILD_FLAG", "RUST_COMPILE_TARGET", "CRATE_TYPE", "TARGET_OS"], channels = ["stable"] }
  8. [tasks.flowy-sdk-dev]
  9. mac_alias = "flowy-sdk-dev-macos"
  10. windows_alias = "flowy-sdk-dev-windows"
  11. linux_alias = "flowy-sdk-dev-linux"
  12. [tasks.flowy-sdk-dev-macos]
  13. category = "Build"
  14. dependencies = ["env_check"]
  15. run_task = { name = ["setup-crate-type","sdk-build", "post-desktop", "restore-crate-type", "copy-to-sys-tmpdir"] }
  16. [tasks.flowy-sdk-dev-windows]
  17. category = "Build"
  18. dependencies = ["env_check"]
  19. run_task = { name = ["setup-crate-type","sdk-build", "post-desktop", "restore-crate-type", "copy-to-sys-tmpdir"] }
  20. [tasks.flowy-sdk-dev-linux]
  21. category = "Build"
  22. dependencies = ["env_check"]
  23. run_task = { name = ["setup-crate-type","sdk-build", "post-desktop", "restore-crate-type", "copy-to-sys-tmpdir"] }
  24. #
  25. [tasks.sdk-build]
  26. private = true
  27. script = [
  28. """
  29. cd rust-lib/
  30. rustup show
  31. echo cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  32. cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  33. cd ../
  34. """,
  35. ]
  36. script_runner = "@shell"
  37. [tasks.sdk-build.windows]
  38. private = true
  39. script = [
  40. """
  41. cd rust-lib
  42. exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  43. cd ..
  44. """,
  45. ]
  46. script_runner = "@duckscript"
  47. #
  48. [tasks.flowy-sdk-release]
  49. description = "Build flowy sdk in release mode"
  50. category = "Build"
  51. dependencies = ["env_check"]
  52. run_task = { name = ["setup-crate-type","sdk-release-build", "post-desktop", "restore-crate-type"] }
  53. #
  54. [tasks.sdk-release-build]
  55. script = [
  56. """
  57. cd rust-lib/
  58. cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  59. cd ../
  60. """,
  61. ]
  62. script_runner = "@shell"
  63. #
  64. [tasks.post-desktop]
  65. mac_alias = "post-desktop-macos"
  66. windows_alias = "post-desktop-windows"
  67. linux_alias = "post-desktop-linux"
  68. [tasks.post-desktop-macos]
  69. private = true
  70. script = [
  71. """
  72. echo "🚀 🚀 🚀 Flowy-SDK(macOS) build success"
  73. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/flowy_sdk/${TARGET_OS}
  74. lib = set lib${LIB_NAME}.${SDK_EXT}
  75. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  76. ${dart_ffi_dir}/${lib}
  77. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  78. ${dart_ffi_dir}/Classes/binding.h
  79. """,
  80. ]
  81. script_runner = "@duckscript"
  82. [tasks.post-desktop-windows]
  83. private = true
  84. script = [
  85. """
  86. echo "🚀 🚀 🚀 Flowy-SDK(windows) build success"
  87. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/windows/flutter/dart_ffi
  88. lib = set ${LIB_NAME}.${SDK_EXT}
  89. # copy dll
  90. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  91. ${dart_ffi_dir}/${lib}
  92. # copy binding.h
  93. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  94. ${dart_ffi_dir}/binding.h
  95. """,
  96. ]
  97. script_runner = "@duckscript"
  98. [tasks.post-desktop-linux]
  99. private = true
  100. script = [
  101. """
  102. echo "🚀 🚀 🚀 Flowy-SDK(linux) build success"
  103. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/linux/flutter/dart_ffi
  104. lib = set lib${LIB_NAME}.${SDK_EXT}
  105. # copy dll
  106. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  107. ${dart_ffi_dir}/${lib}
  108. # copy binding.h
  109. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  110. ${dart_ffi_dir}/binding.h
  111. """,
  112. ]
  113. script_runner = "@duckscript"
  114. [tasks.copy-to-sys-tmpdir]
  115. private = true
  116. script = [
  117. """
  118. # Copy the flowy_sdk lib to system temp directory for flutter unit test.
  119. lib = set lib${LIB_NAME}.${SDK_EXT}
  120. dest = set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/.sandbox/${lib}
  121. rm ${dest}
  122. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${lib} \
  123. ${dest}
  124. """,
  125. ]
  126. script_runner = "@duckscript"
  127. [tasks.copy-to-sys-tmpdir.windows]
  128. private = true
  129. script = [
  130. """
  131. # Doesn't work on windows
  132. """,
  133. ]
  134. script_runner = "@duckscript"