load("@allwpilib_pip_deps//:requirements.bzl", "requirement") load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files") load("@rules_java//java:defs.bzl", "java_binary") load("@rules_python//python:defs.bzl", "py_binary") load("//shared/bazel/rules:java_rules.bzl", "wpilib_java_junit5_test", "wpilib_java_library") load("//wpiunits:generate_wpiunits.bzl", "generate_wpiunits") py_binary( name = "generate_units", srcs = ["generate_units.py"], data = glob(["src/generate/main/java/**"]), target_compatible_with = select({ "@rules_bzlmodrio_toolchains//constraints/is_systemcore:systemcore": ["@platforms//:incompatible"], "//conditions:default": [], }), deps = [requirement("jinja2")], ) generate_wpiunits( name = "gen_units", ) write_source_files( name = "write_wpiunits", diff_args = ["-u"], files = { "src/generated": ":gen_units", }, suggested_update_target = "//:write_all", tags = ["pregeneration"], visibility = ["//visibility:public"], ) wpilib_java_library( name = "wpiunits-java", srcs = glob(["src/main/java/**/*.java"]) + glob(["src/generated/main/java/**/*.java"]), maven_artifact_name = "wpiunits-java", maven_group_id = "org.wpilib.wpiunits", visibility = ["//visibility:public"], deps = [], ) wpilib_java_junit5_test( name = "wpiunits-test", srcs = glob(["src/test/java/**/*.java"]), deps = [ ":wpiunits-java", ], ) java_binary( name = "DevMain-Java", srcs = ["src/dev/java/org/wpilib/units/DevMain.java"], main_class = "org.wpilib.units.DevMain", deps = [ ":wpiunits-java", ], )