mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
There were complaints about no patch files being created from CI when the examples pre-gen fails for people who don't build with bazel. This adds a new action step to run just the non-robotpy pregen. I also added an argument to the diff tests to make it a unified diff, which might make it easier to hand fix.
166 lines
4.6 KiB
Python
166 lines
4.6 KiB
Python
load("@allwpilib_pip_deps//:requirements.bzl", "requirement")
|
|
load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")
|
|
load("@rules_cc//cc:defs.bzl", "cc_binary")
|
|
load("@rules_java//java:defs.bzl", "java_binary")
|
|
load("@rules_pkg//:mappings.bzl", "pkg_files")
|
|
load("@rules_python//python:defs.bzl", "py_binary")
|
|
load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test", "wpilib_java_library")
|
|
load("//shared/bazel/rules/gen:gen-version-file.bzl", "generate_version_file")
|
|
load("//wpilibj:generate.bzl", "generate_wpilibj")
|
|
|
|
py_binary(
|
|
name = "generate_hids",
|
|
srcs = ["generate_hids.py"],
|
|
target_compatible_with = select({
|
|
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"],
|
|
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [requirement("jinja2")],
|
|
)
|
|
|
|
py_binary(
|
|
name = "generate_pwm_motor_controllers",
|
|
srcs = ["generate_pwm_motor_controllers.py"],
|
|
target_compatible_with = select({
|
|
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"],
|
|
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [requirement("jinja2")],
|
|
)
|
|
|
|
py_binary(
|
|
name = "generate_wpilibj_py",
|
|
srcs = ["generate_wpilibj.py"],
|
|
main = "generate_wpilibj.py",
|
|
target_compatible_with = select({
|
|
"@rules_bzlmodrio_toolchains//constraints/is_roborio:roborio": ["@platforms//:incompatible"],
|
|
"@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"],
|
|
"//conditions:default": [],
|
|
}),
|
|
deps = [
|
|
":generate_hids",
|
|
":generate_pwm_motor_controllers",
|
|
],
|
|
)
|
|
|
|
generate_wpilibj(
|
|
name = "generate_wpilibj",
|
|
)
|
|
|
|
write_source_files(
|
|
name = "write_wpilibj",
|
|
diff_args = ["-u"],
|
|
files = {
|
|
"src/generated": ":generate_wpilibj",
|
|
},
|
|
suggested_update_target = "//:write_all",
|
|
tags = ["pregeneration"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
generate_version_file(
|
|
name = "generate-version",
|
|
output_file = "WPILibVersion.java",
|
|
template = "src/generate/WPILibVersion.java.in",
|
|
)
|
|
|
|
filegroup(
|
|
name = "generated_java",
|
|
srcs = glob(["src/generated/main/java/**/*.java"]),
|
|
)
|
|
|
|
wpilib_java_library(
|
|
name = "wpilibj-java",
|
|
srcs = [
|
|
":generate-version",
|
|
":generated_java",
|
|
] + glob(["src/main/java/**/*.java"]),
|
|
extra_source_pkgs = ["generated_version_files"],
|
|
maven_artifact_name = "wpilibj-java",
|
|
maven_group_id = "org.wpilib.wpilibj",
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
"//cameraserver:cameraserver-java",
|
|
"//cscore:cscore-java",
|
|
"//datalog:datalog-java",
|
|
"//hal:hal-java",
|
|
"//ntcore:ntcore-java",
|
|
"//wpimath:wpimath-java",
|
|
"//wpinet:wpinet-java",
|
|
"//wpiunits:wpiunits-java",
|
|
"//wpiutil:wpiutil-java",
|
|
"@maven//:org_ejml_ejml_core",
|
|
"@maven//:org_ejml_ejml_simple",
|
|
],
|
|
)
|
|
|
|
pkg_files(
|
|
name = "generated_version_files",
|
|
srcs = [
|
|
":generate-version",
|
|
],
|
|
prefix = "edu/wpi/first/wpilibj/util/",
|
|
)
|
|
|
|
wpilib_java_junit5_test(
|
|
name = "wpilibj-java-test",
|
|
srcs = glob(["src/test/java/**/*.java"]),
|
|
resource_strip_prefix = "wpilibj/src/test/resources",
|
|
resources = glob(["src/test/resources/**"]),
|
|
deps = [
|
|
":wpilibj-java",
|
|
"//hal:hal-java",
|
|
"//ntcore:ntcore-java",
|
|
"//wpimath:wpimath-java",
|
|
"//wpiunits:wpiunits-java",
|
|
"//wpiutil:wpiutil-java",
|
|
],
|
|
)
|
|
|
|
cc_binary(
|
|
name = "DevMain-Cpp",
|
|
srcs = ["src/dev/native/cpp/main.cpp"],
|
|
deps = [
|
|
],
|
|
)
|
|
|
|
java_binary(
|
|
name = "DevMain-Java",
|
|
srcs = ["src/dev/java/org/wpilib/DevMain.java"],
|
|
main_class = "org.wpilib.DevMain",
|
|
deps = [
|
|
"//hal:hal-java",
|
|
"//ntcore:ntcore-java",
|
|
"//wpimath:wpimath-java",
|
|
"//wpiutil:wpiutil-java",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "hid_schema",
|
|
srcs = [
|
|
"src/generate/hids.json",
|
|
"src/generate/hids.schema.json",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "pwm_schema",
|
|
srcs = [
|
|
"src/generate/pwm_motor_controllers.json",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
|
|
filegroup(
|
|
name = "templates",
|
|
srcs = glob(["src/generate/**/*.jinja"]) + [
|
|
":hid_schema",
|
|
":pwm_schema",
|
|
],
|
|
visibility = ["//visibility:public"],
|
|
)
|