Makefile.toml 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #https://github.com/sagiegurari/cargo-make
  2. extend = [
  3. { path = "scripts/makefile/desktop.toml" },
  4. { path = "scripts/makefile/protobuf.toml" },
  5. { path = "scripts/makefile/tests.toml" },
  6. { path = "scripts/makefile/docker.toml" },
  7. { path = "scripts/makefile/env.toml" },
  8. { path = "scripts/makefile/flutter.toml" },
  9. ]
  10. [env]
  11. CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
  12. CARGO_MAKE_CRATE_FS_NAME = "dart_ffi"
  13. CARGO_MAKE_CRATE_NAME = "dart-ffi"
  14. VERSION = "0.0.1"
  15. FEATURES = "flutter"
  16. PRODUCT_NAME = "AppFlowy"
  17. #CRATE_TYPE: https://doc.rust-lang.org/reference/linkage.html
  18. CRATE_TYPE = "cdylib"
  19. [env.development-mac]
  20. TARGET_OS = "macos"
  21. RUST_COMPILE_TARGET = "x86_64-apple-darwin"
  22. BUILD_FLAG = "debug"
  23. FLUTTER_OUTPUT_DIR = "Debug"
  24. PRODUCT_EXT = "app"
  25. [env.production-desktop-mac-aarch64]
  26. BUILD_FLAG = "release"
  27. TARGET_OS = "macos"
  28. RUST_COMPILE_TARGET = "aarch64-apple-darwin"
  29. FLUTTER_OUTPUT_DIR = "Release"
  30. PRODUCT_EXT = "app"
  31. [env.production-desktop-mac-x86]
  32. BUILD_FLAG = "release"
  33. TARGET_OS = "macos"
  34. RUST_COMPILE_TARGET = "x86_64-apple-darwin"
  35. FLUTTER_OUTPUT_DIR = "Release"
  36. PRODUCT_EXT = "app"
  37. [env.production-desktop-windows-x86]
  38. BUILD_FLAG = "release"
  39. TARGET_OS = "windows"
  40. RUST_COMPILE_TARGET = "x86_64-pc-windows-gnu"
  41. FLUTTER_OUTPUT_DIR = "Release"
  42. PRODUCT_EXT = "exe"
  43. [tasks.echo_env]
  44. script = [
  45. '''
  46. echo BUILD_FLAG: ${BUILD_FLAG}
  47. echo TARGET_OS: ${TARGET_OS}
  48. echo RUST_COMPILE_TARGET: ${RUST_COMPILE_TARGET}
  49. echo FEATURES: ${FEATURES}
  50. echo PRODUCT_EXT: ${PRODUCT_EXT}
  51. echo ${platforms}
  52. '''
  53. ]
  54. [env.production-ios]
  55. BUILD_FLAG = "release"
  56. TARGET_OS = "ios"
  57. CRATE_TYPE = "staticlib"
  58. BUILD_FLAG = "release"
  59. FLUTTER_OUTPUT_DIR = "Release"
  60. PRODUCT_EXT = "ipa"
  61. [tasks.setup-crate-type]
  62. private = true
  63. script = [
  64. """
  65. toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
  66. val = replace ${toml} "rlib" ${CRATE_TYPE}
  67. result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
  68. assert ${result}
  69. """,
  70. ]
  71. script_runner = "@duckscript"
  72. [tasks.restore-crate-type]
  73. private = true
  74. script = [
  75. """
  76. toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
  77. val = replace ${toml} ${CRATE_TYPE} "rlib"
  78. result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
  79. assert ${result}
  80. """,
  81. ]
  82. script_runner = "@duckscript"