blob: 5ff91d6a25d5fd81d07ad4cc27162cc5046606fa [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001load("//tools/build_rules:js.bzl", "rollup_bundle", "ts_project")
2load("//frc971/downloader:downloader.bzl", "aos_downloader_dir")
3
4filegroup(
5 name = "files",
6 srcs = glob([
7 "**/*.html",
8 "**/*.css",
9 "**/*.png",
10 ]) + ["2024.png"],
11 visibility = ["//visibility:public"],
12)
13
Niko Sohmers3860f8a2024-01-12 21:05:19 -080014genrule(
15 name = "2024_field_png",
Niko Sohmers2d108762024-02-02 20:21:14 -080016 srcs = ["//third_party/y2024/field:pictures"],
Niko Sohmers3860f8a2024-01-12 21:05:19 -080017 outs = ["2024.png"],
Niko Sohmers2d108762024-02-02 20:21:14 -080018 cmd = "cp third_party/y2024/field/2024.png $@",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080019)
20
21ts_project(
22 name = "field_main",
23 srcs = [
24 "constants.ts",
25 "field_handler.ts",
26 "field_main.ts",
27 ],
28 target_compatible_with = ["@platforms//os:linux"],
29 deps = [
30 "//aos/network:connect_ts_fbs",
31 "//aos/network:message_bridge_client_ts_fbs",
32 "//aos/network:message_bridge_server_ts_fbs",
33 "//aos/network:web_proxy_ts_fbs",
34 "//aos/network/www:proxy",
35 "//frc971/control_loops:control_loops_ts_fbs",
36 "//frc971/control_loops/drivetrain:drivetrain_can_position_ts_fbs",
37 "//frc971/control_loops/drivetrain:drivetrain_position_ts_fbs",
38 "//frc971/control_loops/drivetrain:drivetrain_status_ts_fbs",
39 "//frc971/control_loops/drivetrain/localization:localizer_output_ts_fbs",
40 "//frc971/vision:target_map_ts_fbs",
41 "//y2024/control_loops/superstructure:superstructure_status_ts_fbs",
42 "@com_github_google_flatbuffers//ts:flatbuffers_ts",
43 ],
44)
45
46rollup_bundle(
47 name = "field_main_bundle",
48 entry_point = "field_main.ts",
49 target_compatible_with = ["@platforms//os:linux"],
50 visibility = ["//y2024:__subpackages__"],
51 deps = [
52 ":field_main",
53 ],
54)
55
56aos_downloader_dir(
57 name = "www_files",
58 srcs = [
59 ":field_main_bundle.min.js",
60 ":files",
61 "//frc971/analysis:plot_index_bundle.min.js",
62 ],
63 dir = "www",
64 target_compatible_with = ["@platforms//os:linux"],
65 visibility = ["//visibility:public"],
66)