desktop.toml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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"]
  7. condition = { env_set = [ "BUILD_FLAG", "RUST_COMPILE_TARGET", "CRATE_TYPE", "TARGET_OS"], channels = ["nightly"] }
  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"] }
  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"] }
  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"] }
  24. #
  25. [tasks.sdk-build]
  26. private = true
  27. script = [
  28. """
  29. cd rust-lib/
  30. echo cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  31. cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  32. cd ../
  33. """,
  34. ]
  35. script_runner = "@shell"
  36. [tasks.sdk-build.windows]
  37. private = true
  38. script = [
  39. """
  40. cd rust-lib
  41. exec cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  42. cd ..
  43. """,
  44. ]
  45. script_runner = "@duckscript"
  46. #
  47. [tasks.flowy-sdk-release]
  48. description = "Build flowy sdk in release mode"
  49. category = "Build"
  50. dependencies = ["env_check"]
  51. run_task = { name = ["setup-crate-type","sdk-release-build", "post-desktop", "restore-crate-type"] }
  52. #
  53. [tasks.sdk-release-build]
  54. script = [
  55. """
  56. cd rust-lib/
  57. cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features "${FEATURES}"
  58. cd ../
  59. """,
  60. ]
  61. script_runner = "@shell"
  62. #
  63. [tasks.post-desktop]
  64. mac_alias = "post-desktop-macos"
  65. windows_alias = "post-desktop-windows"
  66. linux_alias = "post-desktop-linux"
  67. [tasks.post-desktop-macos]
  68. private = true
  69. script = [
  70. """
  71. echo "🚀 🚀 🚀 Flowy-SDK(macOS) build success"
  72. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT} \
  73. ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/flowy_sdk/${TARGET_OS}/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT}
  74. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  75. ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/flowy_sdk/${TARGET_OS}/Classes/binding.h
  76. """,
  77. ]
  78. script_runner = "@duckscript"
  79. [tasks.post-desktop-windows]
  80. private = true
  81. script = [
  82. """
  83. echo "🚀 🚀 🚀 Flowy-SDK(windows) build success"
  84. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/windows/flutter/dart_ffi
  85. # copy dll
  86. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT} \
  87. ${dart_ffi_dir}/${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT}
  88. # copy binding.h
  89. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  90. ${dart_ffi_dir}/binding.h
  91. """,
  92. ]
  93. script_runner = "@duckscript"
  94. [tasks.post-desktop-linux]
  95. private = true
  96. script = [
  97. """
  98. echo "🚀 🚀 🚀 Flowy-SDK(linux) build success"
  99. dart_ffi_dir= set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/linux/flutter/dart_ffi
  100. # copy dll
  101. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT} \
  102. ${dart_ffi_dir}/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT}
  103. # copy binding.h
  104. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
  105. ${dart_ffi_dir}/binding.h
  106. """,
  107. ]
  108. script_runner = "@duckscript"
  109. #
  110. [tasks.copy-to-sys-tmpdir]
  111. private = true
  112. condition = { profiles = [ "development-mac" ], platforms = ["mac"] }
  113. script = [
  114. """
  115. # post the dylib target_path that use for flutter unit test
  116. target_path = set ${TMPDIR}/appflowy/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT}
  117. rm ${target_path}
  118. cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.${SDK_EXT} ${target_path}
  119. """,
  120. ]
  121. script_runner = "@duckscript"