Makefile.toml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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. RUST_LOG = "info"
  12. CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
  13. CARGO_MAKE_CRATE_FS_NAME = "dart_ffi"
  14. CARGO_MAKE_CRATE_NAME = "dart-ffi"
  15. VERSION = "0.0.3"
  16. FEATURES = "flutter"
  17. PRODUCT_NAME = "AppFlowy"
  18. #CRATE_TYPE: https://doc.rust-lang.org/reference/linkage.html
  19. CRATE_TYPE = "staticlib"
  20. SDK_EXT = "a"
  21. APP_ENVIRONMENT = "local"
  22. [env.development-mac]
  23. RUST_LOG = "trace"
  24. TARGET_OS = "macos"
  25. RUST_COMPILE_TARGET = "x86_64-apple-darwin"
  26. BUILD_FLAG = "debug"
  27. FLUTTER_OUTPUT_DIR = "Debug"
  28. PRODUCT_EXT = "app"
  29. [env.production-mac-aarch64]
  30. BUILD_FLAG = "release"
  31. TARGET_OS = "macos"
  32. RUST_COMPILE_TARGET = "aarch64-apple-darwin"
  33. FLUTTER_OUTPUT_DIR = "Release"
  34. PRODUCT_EXT = "app"
  35. APP_ENVIRONMENT = "production"
  36. [env.production-mac-x86]
  37. BUILD_FLAG = "release"
  38. TARGET_OS = "macos"
  39. RUST_COMPILE_TARGET = "x86_64-apple-darwin"
  40. FLUTTER_OUTPUT_DIR = "Release"
  41. PRODUCT_EXT = "app"
  42. APP_ENVIRONMENT = "production"
  43. [env.development-windows-x86]
  44. TARGET_OS = "windows"
  45. RUST_COMPILE_TARGET = "x86_64-pc-windows-msvc"
  46. BUILD_FLAG = "debug"
  47. FLUTTER_OUTPUT_DIR = "Debug"
  48. PRODUCT_EXT = "exe"
  49. CRATE_TYPE = "cdylib"
  50. SDK_EXT = "dll"
  51. [env.production-windows-x86]
  52. BUILD_FLAG = "release"
  53. TARGET_OS = "windows"
  54. RUST_COMPILE_TARGET = "x86_64-pc-windows-msvc"
  55. FLUTTER_OUTPUT_DIR = "Release"
  56. PRODUCT_EXT = "exe"
  57. CRATE_TYPE = "cdylib"
  58. SDK_EXT = "dll"
  59. APP_ENVIRONMENT = "production"
  60. [env.development-linux-x86]
  61. TARGET_OS = "linux"
  62. RUST_COMPILE_TARGET = "x86_64-unknown-linux-gnu"
  63. BUILD_FLAG = "debug"
  64. CRATE_TYPE = "cdylib"
  65. FLUTTER_OUTPUT_DIR = "Debug"
  66. SDK_EXT = "so"
  67. LINUX_ARCH = "x64"
  68. [env.production-linux-x86]
  69. BUILD_FLAG = "release"
  70. TARGET_OS = "linux"
  71. RUST_COMPILE_TARGET = "x86_64-unknown-linux-gnu"
  72. CRATE_TYPE = "cdylib"
  73. FLUTTER_OUTPUT_DIR = "Release"
  74. SDK_EXT = "so"
  75. LINUX_ARCH = "x64"
  76. APP_ENVIRONMENT = "production"
  77. [env.development-linux-aarch64]
  78. TARGET_OS = "linux"
  79. RUST_COMPILE_TARGET = "aarch64-unknown-linux-gnu"
  80. BUILD_FLAG = "debug"
  81. CRATE_TYPE = "cdylib"
  82. FLUTTER_OUTPUT_DIR = "Debug"
  83. SDK_EXT = "so"
  84. LINUX_ARCH = "arm64"
  85. [env.production-linux-aarch64]
  86. BUILD_FLAG = "release"
  87. TARGET_OS = "linux"
  88. RUST_COMPILE_TARGET = "aarch64-unknown-linux-gnu"
  89. CRATE_TYPE = "cdylib"
  90. FLUTTER_OUTPUT_DIR = "Release"
  91. SDK_EXT = "so"
  92. LINUX_ARCH = "arm64"
  93. APP_ENVIRONMENT = "production"
  94. [tasks.echo_env]
  95. script = [
  96. '''
  97. echo "-------- Env Parameters --------"
  98. echo CRATE_TYPE: ${CRATE_TYPE}
  99. echo BUILD_FLAG: ${BUILD_FLAG}
  100. echo TARGET_OS: ${TARGET_OS}
  101. echo RUST_COMPILE_TARGET: ${RUST_COMPILE_TARGET}
  102. echo FEATURES: ${FEATURES}
  103. echo PRODUCT_EXT: ${PRODUCT_EXT}
  104. echo APP_ENVIRONMENT: ${APP_ENVIRONMENT}
  105. echo ${platforms}
  106. echo "-------- Flutter --------"
  107. flutter doctor
  108. echo "-------- Rust --------"
  109. rustup show
  110. '''
  111. ]
  112. script_runner = "@shell"
  113. [env.production-ios]
  114. BUILD_FLAG = "release"
  115. TARGET_OS = "ios"
  116. CRATE_TYPE = "staticlib"
  117. FLUTTER_OUTPUT_DIR = "Release"
  118. PRODUCT_EXT = "ipa"
  119. [tasks.setup-crate-type]
  120. private = true
  121. script = [
  122. """
  123. toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
  124. val = replace ${toml} "staticlib" ${CRATE_TYPE}
  125. result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
  126. assert ${result}
  127. """,
  128. ]
  129. script_runner = "@duckscript"
  130. [tasks.restore-crate-type]
  131. private = true
  132. script = [
  133. """
  134. toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
  135. val = replace ${toml} ${CRATE_TYPE} "staticlib"
  136. result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
  137. assert ${result}
  138. """,
  139. ]
  140. script_runner = "@duckscript"