flora is a fast and secure runtime that lets you write discord bots for your servers, with a rich TypeScript SDK, without worrying about running infrastructure. [mirror]
1filegroup(
2 name = "workspace_marker",
3 srcs = ["Cargo.toml"],
4 visibility = ["PUBLIC"],
5)
6
7filegroup(
8 name = "rust_workspace_inputs",
9 srcs = [
10 ".cargo",
11 "Cargo.lock",
12 "Cargo.toml",
13 ],
14 visibility = ["PUBLIC"],
15)
16
17filegroup(
18 name = "rust_runtime_embed_inputs",
19 srcs = [
20 "examples/basic/src",
21 "runtime-dist",
22 ],
23 visibility = ["PUBLIC"],
24)
25
26filegroup(
27 name = "rust_deno_inputs",
28 srcs = ["submodules/deno_core"],
29 visibility = ["PUBLIC"],
30)
31
32filegroup(
33 name = "rust_v8_prebuilt_inputs",
34 srcs = [
35 "submodules/rusty_v8/.gn",
36 "submodules/rusty_v8/BUILD.gn",
37 "submodules/rusty_v8/Cargo.toml",
38 "submodules/rusty_v8/build.rs",
39 "submodules/rusty_v8/gen",
40 "submodules/rusty_v8/src",
41 "submodules/rusty_v8/tools",
42 ],
43 visibility = ["PUBLIC"],
44)
45
46filegroup(
47 name = "rust_v8_source_inputs",
48 srcs = glob(
49 [
50 "submodules/rusty_v8/build/**",
51 "submodules/rusty_v8/buildtools/**",
52 "submodules/rusty_v8/third_party/**",
53 "submodules/rusty_v8/v8/**",
54 ],
55 exclude = [
56 "submodules/rusty_v8/third_party/rust/chromium_crates_io/vendor/cxx-v1/**",
57 ],
58 ),
59 visibility = ["PUBLIC"],
60)
61
62genrule(
63 name = "check_rust",
64 out = "check_rust.stamp",
65 cmd = "python3 $(location //tools/buck:cargo_action.py) command --workspace-marker $(location :workspace_marker) --out $OUT -- check --workspace",
66 srcs = {
67 "workspace_marker": ":workspace_marker",
68 "workspace_inputs": ":rust_workspace_inputs",
69 "runtime_embed_inputs": ":rust_runtime_embed_inputs",
70 "deno_inputs": ":rust_deno_inputs",
71 "v8_prebuilt_inputs": ":rust_v8_prebuilt_inputs",
72 "runtime_inputs": "//apps/runtime:inputs",
73 "flora_config_inputs": "//crates/flora_config:inputs",
74 "flora_macros_inputs": "//crates/flora_macros:inputs",
75 "flora_typegen_inputs": "//crates/flora_typegen:inputs",
76 "cargo_action": "//tools/buck:cargo_action.py",
77 },
78 enable_sandbox = False,
79 visibility = ["PUBLIC"],
80)
81
82genrule(
83 name = "test_rust",
84 out = "test_rust.stamp",
85 cmd = "python3 $(location //tools/buck:cargo_action.py) command --workspace-marker $(location :workspace_marker) --out $OUT -- test --workspace --no-run",
86 srcs = {
87 "workspace_marker": ":workspace_marker",
88 "workspace_inputs": ":rust_workspace_inputs",
89 "runtime_embed_inputs": ":rust_runtime_embed_inputs",
90 "deno_inputs": ":rust_deno_inputs",
91 "v8_prebuilt_inputs": ":rust_v8_prebuilt_inputs",
92 "runtime_inputs": "//apps/runtime:inputs",
93 "flora_config_inputs": "//crates/flora_config:inputs",
94 "flora_macros_inputs": "//crates/flora_macros:inputs",
95 "flora_typegen_inputs": "//crates/flora_typegen:inputs",
96 "cargo_action": "//tools/buck:cargo_action.py",
97 },
98 enable_sandbox = False,
99 visibility = ["PUBLIC"],
100)
101
102genrule(
103 name = "build_all_rust",
104 out = "build_all_rust.stamp",
105 cmd = "touch $OUT",
106 srcs = [
107 "//apps/runtime:flora_lib",
108 "//apps/runtime:flora_bin",
109 "//apps/runtime:flora_bin_v8_source",
110 "//crates/flora_config:flora_config",
111 "//crates/flora_macros:flora_macros",
112 "//crates/flora_typegen:flora_typegen",
113 ],
114 visibility = ["PUBLIC"],
115)