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_first_ds_hids", srcs = ["generate_first_ds_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_first_ds_hids", ":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/generated/test/java/**/*.java", "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/first_ds_hids.json", "src/generate/first_ds_hids.schema.json", "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"], )