protobuf.toml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. [tasks.pb]
  2. dependencies = ["check_protoc_cmd", "gen_pb_file"]
  3. [tasks.install_protobuf]
  4. condition_script = [
  5. """
  6. if [ ! "$(command -v protoc)" ]; then
  7. exit 0
  8. fi
  9. if [ ! "$(command -v protoc-gen-dart)" ]; then
  10. exit 0
  11. fi
  12. # installed
  13. exit 1
  14. """,
  15. ]
  16. run_task = { name = ["install_protobuf_compiler"] }
  17. [tasks.install_protobuf_compiler]
  18. script = """
  19. brew install protobuf
  20. echo "Install protoc_plugin (Dart)"
  21. dart pub global activate protoc_plugin
  22. export PATH="$PATH":"$HOME/.pub-cache/bin"
  23. """
  24. script_runner = "@shell"
  25. [tasks.install_protobuf_compiler.linux]
  26. script = """
  27. sudo apt-get install protobuf-compiler
  28. echo "Install protoc_plugin (Dart)"
  29. dart pub global activate protoc_plugin
  30. export PATH="$PATH":"$HOME/.pub-cache/bin"
  31. """
  32. script_runner = "@shell"
  33. [tasks.install_protobuf_compiler.windows]
  34. script = """
  35. ret = which dart
  36. if is_empty ${ret}
  37. echo Please make sure flutter/dart is properly installed and in PATH env var
  38. exit -1
  39. end
  40. ret = which protoc-gen-dart
  41. if is_empty ${ret}
  42. exec cmd.exe /c dart pub global activate protoc_plugin
  43. home_dir = get_home_dir
  44. echo Please add '${home_dir}\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\bin' into PATH env var
  45. exit -1
  46. end
  47. """
  48. script_runner = "@duckscript"
  49. [tasks.check_protoc_cmd]
  50. script = [
  51. """
  52. ret = which protoc
  53. if is_empty ${ret}
  54. echo Please make sure <protoc_installation_folder>/bin/ is in PATH env var
  55. echo See BUILD_ON_{LINUX|WINDOWS}.md for how to get protoc
  56. exit -1
  57. end
  58. """,
  59. ]
  60. script_runner = "@duckscript"
  61. [tasks.gen_pb_file]
  62. script = [
  63. """
  64. flowy_tool=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/scripts/flowy-tool/Cargo.toml
  65. rust_lib=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/
  66. shared_lib=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/../shared-lib
  67. flutter_lib=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages
  68. derive_meta=${shared_lib}/flowy-derive/src/derive_cache/derive_cache.rs
  69. flutter_package_lib=${flutter_lib}/flowy_sdk/lib
  70. cargo run \
  71. --manifest-path ${flowy_tool} pb-gen \
  72. --rust_sources ${rust_lib} ${shared_lib} \
  73. --derive_meta=${derive_meta} \
  74. --flutter_package_lib=${flutter_package_lib}
  75. """,
  76. ]
  77. script_runner = "@shell"
  78. [tasks.gen_pb_file.windows]
  79. script = [
  80. """
  81. flowy_tool=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/scripts/flowy-tool/Cargo.toml
  82. rust_source=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/
  83. # rust_lib=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib
  84. shared_lib=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/../shared-lib
  85. flutter_lib=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages
  86. derive_meta=set ${shared_lib}/flowy-derive/src/derive_cache/derive_cache.rs
  87. flutter_package_lib=set ${flutter_lib}/flowy_sdk/lib
  88. exec cmd /c cargo run \
  89. --manifest-path ${flowy_tool} pb-gen \
  90. --rust_source=${rust_source} \
  91. --derive_meta=${derive_meta} \
  92. --flutter_package_lib=${flutter_package_lib}
  93. """,
  94. ]
  95. script_runner = "@duckscript"
  96. [tasks.gen_dart_event]
  97. script = [
  98. """
  99. flowy_tool=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/scripts/flowy-tool/Cargo.toml
  100. flutter_lib=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages
  101. rust_source=${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/
  102. output=${flutter_lib}/flowy_sdk/lib/dispatch/code_gen.dart
  103. cargo run \
  104. --manifest-path ${flowy_tool} dart-event \
  105. --rust_sources=${rust_source} \
  106. --output=${output}
  107. """,
  108. ]
  109. script_runner = "@shell"
  110. [tasks.gen_dart_event.windows]
  111. script = [
  112. """
  113. flowy_tool=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/scripts/flowy-tool/Cargo.toml
  114. flutter_lib=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages
  115. rust_source=set ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/
  116. output=set ${flutter_lib}/flowy_sdk/lib/dispatch/code_gen.dart
  117. exec cmd.exe /c cargo run \
  118. --manifest-path ${flowy_tool} dart-event \
  119. --rust_source=${rust_source} \
  120. --output=${output}
  121. """,
  122. ]
  123. script_runner = "@duckscript"