2025-05-14 01:01:47 -04:00
|
|
|
load("@rules_java//java:defs.bzl", "java_binary", "java_library")
|
2025-06-27 19:36:12 -04:00
|
|
|
load("@rules_pkg//:mappings.bzl", "pkg_files")
|
|
|
|
|
load("@rules_pkg//:pkg.bzl", "pkg_zip")
|
2025-06-13 23:53:09 -04:00
|
|
|
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test")
|
2026-03-14 17:13:45 -04:00
|
|
|
load("//wpilibjExamples:example_projects.bzl", "COMMANDS_V2_FOLDERS", "EXAMPLE_FOLDERS", "EXAMPLE_TESTS_FOLDERS", "SNIPPET_FOLDERS", "SNIPPET_TESTS_FOLDERS", "TEMPLATE_FOLDERS")
|
2025-05-14 01:01:47 -04:00
|
|
|
|
2025-06-27 19:36:12 -04:00
|
|
|
def _package_type(package_type):
|
|
|
|
|
pkg_files(
|
|
|
|
|
name = package_type + "-pkg",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/main/java/org/wpilib/" + package_type + "/**"]),
|
|
|
|
|
strip_prefix = "src/main/java/org/wpilib",
|
2025-06-27 19:36:12 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
pkgs = ["//:license_pkg_files", ":" + package_type + "-pkg"]
|
|
|
|
|
if package_type == "examples":
|
|
|
|
|
pkg_files(
|
|
|
|
|
name = package_type + "-tests-pkg",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/test/java/org/wpilib/" + package_type + "/**"]),
|
|
|
|
|
strip_prefix = "src/test/java/org/wpilib/" + package_type,
|
2025-06-27 19:36:12 -04:00
|
|
|
prefix = "examples_test",
|
|
|
|
|
)
|
|
|
|
|
pkgs.append(package_type + "-tests-pkg")
|
|
|
|
|
|
|
|
|
|
pkg_zip(
|
|
|
|
|
name = package_type + "-zip",
|
|
|
|
|
srcs = pkgs,
|
2025-07-24 09:11:09 -04:00
|
|
|
tags = ["manual"],
|
2025-06-27 19:36:12 -04:00
|
|
|
)
|
|
|
|
|
|
2025-05-14 01:01:47 -04:00
|
|
|
def build_examples(halsim_deps):
|
2025-06-27 19:36:12 -04:00
|
|
|
_package_type("examples")
|
|
|
|
|
|
2026-03-14 17:13:45 -04:00
|
|
|
for folder in EXAMPLE_FOLDERS:
|
2025-05-14 01:01:47 -04:00
|
|
|
java_binary(
|
|
|
|
|
name = folder + "-example",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/main/java/org/wpilib/examples/" + folder + "/**/*.java"]),
|
|
|
|
|
main_class = "org/wpilib/examples/" + folder + "/Main",
|
2025-05-14 01:01:47 -04:00
|
|
|
plugins = [
|
|
|
|
|
"//epilogue-processor:plugin",
|
|
|
|
|
],
|
|
|
|
|
deps = [
|
|
|
|
|
"//apriltag:apriltag-java",
|
|
|
|
|
"//cameraserver:cameraserver-java",
|
|
|
|
|
"//cscore:cscore-java",
|
|
|
|
|
"//hal:hal-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//ntcore:ntcore-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
"//wpimath:wpimath-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//wpilibj:wpilibj-java",
|
2025-11-07 19:55:39 -05:00
|
|
|
"//commandsv2:commandsv2-java",
|
2026-04-25 15:06:26 -07:00
|
|
|
"//commandsv3:commandsv3-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
"//wpiutil:wpiutil-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//romiVendordep:romiVendordep-java",
|
|
|
|
|
"//xrpVendordep:xrpVendordep-java",
|
|
|
|
|
"//wpiunits:wpiunits-java",
|
|
|
|
|
"//epilogue-runtime:epilogue-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
"@bzlmodrio-opencv//libraries/java/opencv",
|
|
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def build_commands():
|
2025-06-27 19:36:12 -04:00
|
|
|
_package_type("commands")
|
|
|
|
|
|
2025-05-14 01:01:47 -04:00
|
|
|
for folder in COMMANDS_V2_FOLDERS:
|
|
|
|
|
java_library(
|
|
|
|
|
name = folder + "-command",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/main/java/org/wpilib/commands/" + folder + "/**/*.java"]),
|
2025-05-14 01:01:47 -04:00
|
|
|
deps = [
|
|
|
|
|
"//hal:hal-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//wpilibj:wpilibj-java",
|
2025-11-07 19:55:39 -05:00
|
|
|
"//commandsv2:commandsv2-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
"//wpimath:wpimath-java",
|
|
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def build_snippets():
|
2025-06-27 19:36:12 -04:00
|
|
|
_package_type("snippets")
|
|
|
|
|
|
2026-03-14 17:13:45 -04:00
|
|
|
for folder in SNIPPET_FOLDERS:
|
2025-05-14 01:01:47 -04:00
|
|
|
java_library(
|
|
|
|
|
name = folder + "-snippet",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/main/java/org/wpilib/snippets/" + folder + "/**/*.java"]),
|
2025-05-14 01:01:47 -04:00
|
|
|
deps = [
|
2026-03-14 17:13:45 -04:00
|
|
|
"//apriltag:apriltag-java",
|
|
|
|
|
"//cameraserver:cameraserver-java",
|
|
|
|
|
"//cscore:cscore-java",
|
2025-07-20 22:19:14 -07:00
|
|
|
"//hal:hal-java",
|
2026-03-14 17:13:45 -04:00
|
|
|
"//ntcore:ntcore-java",
|
2025-07-20 22:19:14 -07:00
|
|
|
"//wpimath:wpimath-java",
|
2026-03-14 17:13:45 -04:00
|
|
|
"//wpilibj:wpilibj-java",
|
|
|
|
|
"//commandsv2:commandsv2-java",
|
|
|
|
|
"//wpiutil:wpiutil-java",
|
|
|
|
|
"//romiVendordep:romiVendordep-java",
|
|
|
|
|
"//xrpVendordep:xrpVendordep-java",
|
|
|
|
|
"//wpiunits:wpiunits-java",
|
|
|
|
|
"//epilogue-runtime:epilogue-java",
|
|
|
|
|
"@bzlmodrio-opencv//libraries/java/opencv",
|
2025-05-14 01:01:47 -04:00
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def build_templates():
|
2025-06-27 19:36:12 -04:00
|
|
|
_package_type("templates")
|
|
|
|
|
|
2026-03-14 17:13:45 -04:00
|
|
|
for folder in TEMPLATE_FOLDERS:
|
2025-05-14 01:01:47 -04:00
|
|
|
java_library(
|
|
|
|
|
name = folder + "-template",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/main/java/org/wpilib/templates/" + folder + "/**/*.java"]),
|
2025-05-14 01:01:47 -04:00
|
|
|
deps = [
|
|
|
|
|
"//hal:hal-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//wpilibj:wpilibj-java",
|
2025-11-07 19:55:39 -05:00
|
|
|
"//commandsv2:commandsv2-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
"//wpimath:wpimath-java",
|
|
|
|
|
"//wpiutil:wpiutil-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//xrpVendordep:xrpVendordep-java",
|
2025-05-14 01:01:47 -04:00
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|
2025-06-13 23:53:09 -04:00
|
|
|
|
|
|
|
|
def build_tests():
|
2026-03-14 17:13:45 -04:00
|
|
|
for folder in EXAMPLE_TESTS_FOLDERS:
|
2025-06-13 23:53:09 -04:00
|
|
|
wpilib_java_junit5_test(
|
|
|
|
|
name = folder + "-test",
|
2025-11-07 19:56:21 -05:00
|
|
|
srcs = native.glob(["src/test/java/org/wpilib/examples/" + folder + "/**/*.java"]),
|
2025-06-13 23:53:09 -04:00
|
|
|
deps = [
|
|
|
|
|
":" + folder + "-example",
|
|
|
|
|
"//hal:hal-java",
|
2025-06-27 19:36:12 -04:00
|
|
|
"//ntcore:ntcore-java",
|
|
|
|
|
"//wpilibj:wpilibj-java",
|
2025-11-07 19:55:39 -05:00
|
|
|
"//commandsv2:commandsv2-java",
|
2025-06-13 23:53:09 -04:00
|
|
|
"//wpimath:wpimath-java",
|
|
|
|
|
"//wpiutil:wpiutil-java",
|
|
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|
2026-03-14 17:13:45 -04:00
|
|
|
|
|
|
|
|
for folder in SNIPPET_TESTS_FOLDERS:
|
|
|
|
|
wpilib_java_junit5_test(
|
|
|
|
|
name = folder + "-test",
|
|
|
|
|
srcs = native.glob(["src/test/java/org/wpilib/snippets/" + folder + "/**/*.java"]),
|
|
|
|
|
deps = [
|
|
|
|
|
":" + folder + "-snippet",
|
|
|
|
|
"//hal:hal-java",
|
|
|
|
|
"//ntcore:ntcore-java",
|
|
|
|
|
"//wpilibj:wpilibj-java",
|
|
|
|
|
"//commandsv2:commandsv2-java",
|
|
|
|
|
"//wpimath:wpimath-java",
|
|
|
|
|
"//wpiutil:wpiutil-java",
|
|
|
|
|
],
|
|
|
|
|
tags = ["wpi-example"],
|
|
|
|
|
)
|