2025-05-14 01:01:47 -04:00
load ( " @bazel_tools//tools/build_defs/repo:http.bzl " , " http_archive " , " http_file " )
2025-07-05 16:59:22 -07:00
http_archive (
name = " bazel_features " ,
sha256 = " a015f3f2ebf4f1ac3f4ca8ea371610acb63e1903514fa8725272d381948d2747 " ,
strip_prefix = " bazel_features-1.31.0 " ,
url = " https://github.com/bazel-contrib/bazel_features/releases/download/v1.31.0/bazel_features-v1.31.0.tar.gz " ,
)
2025-07-22 13:26:20 -07:00
# TODO(austin): Upgrade when the patches land.
# https://github.com/bazelbuild/rules_cc/pull/430
# https://github.com/bazelbuild/rules_cc/pull/431
# https://github.com/bazelbuild/rules_cc/pull/432
2025-06-15 14:09:21 -07:00
http_archive (
name = " rules_cc " ,
2025-07-22 13:26:20 -07:00
patch_args = [ " -p1 " ] ,
patches = [ " //:shared/bazel/patches/rules_cc_windows.patch " ] ,
2025-06-15 14:09:21 -07:00
sha256 = " 712d77868b3152dd618c4d64faaddefcc5965f90f5de6e6dd1d5ddcd0be82d42 " ,
strip_prefix = " rules_cc-0.1.1 " ,
url = " https://github.com/bazelbuild/rules_cc/releases/download/0.1.1/rules_cc-0.1.1.tar.gz " ,
)
2025-07-22 13:26:20 -07:00
# TODO(austinschuh): Update to the next released apple_support once it lands.
# This needs to contain https://github.com/bazelbuild/apple_support/commit/7009b77c98a67d3fea081c9db4dbcee8effc3b7e and should be the next release after 1.22.1
2025-07-05 16:59:22 -07:00
http_archive (
name = " build_bazel_apple_support " ,
2025-07-22 13:26:20 -07:00
sha256 = " 7d542be113180bc1da3660e51fe4792a867fb85537c9ef36a0d3366665a76803 " ,
strip_prefix = " apple_support-7009b77c98a67d3fea081c9db4dbcee8effc3b7e " ,
url = " https://github.com/bazelbuild/apple_support/archive/7009b77c98a67d3fea081c9db4dbcee8effc3b7e.tar.gz " ,
2025-07-05 16:59:22 -07:00
)
2025-06-15 14:09:21 -07:00
http_archive (
name = " rules_java " ,
sha256 = " d31b6c69e479ffa45460b64dc9c7792a431cac721ef8d5219fc9f603fa2ff877 " ,
urls = [
" https://github.com/bazelbuild/rules_java/releases/download/8.11.0/rules_java-8.11.0.tar.gz " ,
] ,
)
2025-07-05 16:59:22 -07:00
http_archive (
name = " rules_pkg " ,
sha256 = " cad05f864a32799f6f9022891de91ac78f30e0fa07dc68abac92a628121b5b11 " ,
urls = [
" https://github.com/bazelbuild/rules_pkg/releases/download/1.0.0/rules_pkg-1.0.0.tar.gz " ,
] ,
)
# Rules Python
http_archive (
name = " rules_python " ,
sha256 = " 9f9f3b300a9264e4c77999312ce663be5dee9a56e361a1f6fe7ec60e1beef9a3 " ,
strip_prefix = " rules_python-1.4.1 " ,
url = " https://github.com/bazel-contrib/rules_python/releases/download/1.4.1/rules_python-1.4.1.tar.gz " ,
)
# Download Extra java rules
http_archive (
name = " rules_jvm_external " ,
sha256 = " 4f55980c25d0783b9fe43b049362018d8d79263476b5340a5491893ffcc06ab6 " ,
strip_prefix = " rules_jvm_external-30899314873b6ec69dc7d02c4457fbe52a6e535d " ,
url = " https://github.com/bazel-contrib/rules_jvm_external/archive/30899314873b6ec69dc7d02c4457fbe52a6e535d.tar.gz " ,
)
# Setup aspect lib
http_archive (
name = " aspect_bazel_lib " ,
sha256 = " a8a92645e7298bbf538aa880131c6adb4cf6239bbd27230f077a00414d58e4ce " ,
strip_prefix = " bazel-lib-2.7.2 " ,
url = " https://github.com/aspect-build/bazel-lib/releases/download/v2.7.2/bazel-lib-v2.7.2.tar.gz " ,
)
# Download toolchains
http_archive (
name = " rules_bzlmodrio_toolchains " ,
2025-07-08 23:20:08 -04:00
sha256 = " 37780b3d3f30de72aaca12d9f80edc4216f6d708bed5b261c424d4dde49e8531 " ,
url = " https://github.com/wpilibsuite/rules_bzlmodrio_toolchains/releases/download/2025-1.bcr4/rules_bzlmodrio_toolchains-2025-1.bcr4.tar.gz " ,
2025-07-05 16:59:22 -07:00
)
load ( " @bazel_features//:deps.bzl " , " bazel_features_deps " )
bazel_features_deps ( )
load ( " @build_bazel_apple_support//lib:repositories.bzl " , " apple_support_dependencies " )
apple_support_dependencies ( )
load ( " @rules_cc//cc:repositories.bzl " , " rules_cc_toolchains " )
rules_cc_toolchains ( )
2025-06-15 14:09:21 -07:00
load ( " @rules_java//java:rules_java_deps.bzl " , " rules_java_dependencies " )
rules_java_dependencies ( )
# note that the following line is what is minimally required from protobuf for the java rules
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
load ( " @com_google_protobuf//bazel/private:proto_bazel_features.bzl " , " proto_bazel_features " ) # buildifier: disable=bzl-visibility
proto_bazel_features ( name = " proto_bazel_features " )
# register toolchains
load ( " @rules_java//java:repositories.bzl " , " rules_java_toolchains " )
rules_java_toolchains ( )
2025-05-14 01:01:47 -04:00
load ( " @rules_python//python:repositories.bzl " , " py_repositories " , " python_register_toolchains " )
py_repositories ( )
python_register_toolchains (
name = " python_3_10 " ,
ignore_root_user_error = True ,
python_version = " 3.10 " ,
)
load ( " @rules_python//python:pip.bzl " , " pip_parse " )
pip_parse (
name = " allwpilib_pip_deps " ,
python_interpreter_target = " @python_3_10_host//:python " ,
requirements_lock = " //:requirements_lock.txt " ,
)
load ( " @allwpilib_pip_deps//:requirements.bzl " , " install_deps " )
install_deps ( )
2024-10-19 12:54:49 -04:00
load ( " @rules_jvm_external//:repositories.bzl " , " rules_jvm_external_deps " )
rules_jvm_external_deps ( )
2025-07-05 16:59:22 -07:00
load ( " @rules_jvm_external//:setup.bzl " , " rules_jvm_external_setup " )
rules_jvm_external_setup ( )
2024-10-19 12:54:49 -04:00
load ( " @rules_jvm_external//:defs.bzl " , " maven_install " )
2025-01-26 19:52:33 -05:00
load ( " @rules_jvm_external//:specs.bzl " , " maven " )
2024-10-19 12:54:49 -04:00
maven_artifacts = [
" org.ejml:ejml-simple:0.43.1 " ,
" com.fasterxml.jackson.core:jackson-annotations:2.15.2 " ,
" com.fasterxml.jackson.core:jackson-core:2.15.2 " ,
" com.fasterxml.jackson.core:jackson-databind:2.15.2 " ,
" us.hebi.quickbuf:quickbuf-runtime:1.3.3 " ,
" com.google.code.gson:gson:2.10.1 " ,
2025-01-26 19:52:33 -05:00
maven . artifact (
" org.junit.jupiter " ,
" junit-jupiter " ,
" 5.10.1 " ,
testonly = True ,
) ,
maven . artifact (
" org.junit.platform " ,
" junit-platform-console " ,
" 1.10.1 " ,
testonly = True ,
) ,
maven . artifact (
" org.junit.platform " ,
" junit-platform-launcher " ,
" 1.10.1 " ,
testonly = True ,
) ,
maven . artifact (
" org.junit.platform " ,
" junit-platform-reporting " ,
" 1.10.1 " ,
testonly = True ,
) ,
maven . artifact (
" com.google.code.gson " ,
" gson " ,
" 2.10.1 " ,
testonly = False ,
) ,
maven . artifact (
" org.hamcrest " ,
" hamcrest-all " ,
" 1.3 " ,
testonly = True ,
) ,
maven . artifact (
" com.googlecode.junit-toolbox " ,
" junit-toolbox " ,
" 2.4 " ,
testonly = True ,
) ,
maven . artifact (
" org.apache.ant " ,
" ant " ,
" 1.10.12 " ,
testonly = True ,
) ,
maven . artifact (
" org.apache.ant " ,
" ant-junit " ,
" 1.10.12 " ,
testonly = True ,
) ,
maven . artifact (
" org.mockito " ,
" mockito-core " ,
" 4.1.0 " ,
testonly = True ,
) ,
maven . artifact (
" com.google.testing.compile " ,
" compile-testing " ,
" 0.21.0 " ,
testonly = True ,
) ,
2024-10-19 12:54:49 -04:00
]
maven_install (
name = " maven " ,
artifacts = maven_artifacts ,
2025-06-13 23:53:09 -04:00
maven_install_json = " //:maven_install.json " ,
2024-10-19 12:54:49 -04:00
repositories = [
" https://repo1.maven.org/maven2 " ,
" https://frcmaven.wpi.edu/artifactory/release/ " ,
] ,
)
2025-06-13 23:53:09 -04:00
load ( " @maven//:defs.bzl " , " pinned_maven_install " )
pinned_maven_install ( )
2025-06-15 14:09:21 -07:00
load ( " @aspect_bazel_lib//lib:repositories.bzl " , " aspect_bazel_lib_dependencies " , " aspect_bazel_lib_register_toolchains " )
2025-05-14 01:01:47 -04:00
aspect_bazel_lib_dependencies ( )
2025-06-15 14:09:21 -07:00
aspect_bazel_lib_register_toolchains ( )
2024-10-19 12:54:49 -04:00
load ( " @rules_bzlmodrio_toolchains//:maven_deps.bzl " , " setup_legacy_setup_toolchains_dependencies " )
setup_legacy_setup_toolchains_dependencies ( )
load ( " @rules_bzlmodrio_toolchains//toolchains:load_toolchains.bzl " , " load_toolchains " )
load_toolchains ( )
#
http_archive (
name = " rules_bzlmodrio_jdk " ,
2025-07-05 16:59:22 -07:00
sha256 = " 623b8bcdba1c3140f56e940365f011d2e5d90d74c7a30ace6a8817c037c1dd61 " ,
url = " https://github.com/wpilibsuite/rules_bzlmodRio_jdk/releases/download/17.0.12-7.bcr1/rules_bzlmodrio_jdk-17.0.12-7.bcr1.tar.gz " ,
2024-10-19 12:54:49 -04:00
)
load ( " @rules_bzlmodrio_jdk//:maven_deps.bzl " , " setup_legacy_setup_jdk_dependencies " )
setup_legacy_setup_jdk_dependencies ( )
register_toolchains (
" @local_roborio//:macos " ,
" @local_roborio//:linux " ,
" @local_roborio//:windows " ,
2025-01-16 12:52:43 -05:00
" @local_systemcore//:macos " ,
" @local_systemcore//:linux " ,
" @local_systemcore//:windows " ,
" @local_raspi_bullseye_32//:macos " ,
" @local_raspi_bullseye_32//:linux " ,
" @local_raspi_bullseye_32//:windows " ,
" @local_raspi_bookworm_32//:macos " ,
" @local_raspi_bookworm_32//:linux " ,
" @local_raspi_bookworm_32//:windows " ,
2024-10-19 12:54:49 -04:00
" @local_bullseye_32//:macos " ,
" @local_bullseye_32//:linux " ,
" @local_bullseye_32//:windows " ,
" @local_bullseye_64//:macos " ,
" @local_bullseye_64//:linux " ,
" @local_bullseye_64//:windows " ,
2024-12-19 01:00:40 -05:00
" @local_bookworm_32//:macos " ,
" @local_bookworm_32//:linux " ,
" @local_bookworm_32//:windows " ,
" @local_bookworm_64//:macos " ,
" @local_bookworm_64//:linux " ,
" @local_bookworm_64//:windows " ,
2024-10-19 12:54:49 -04:00
)
setup_legacy_setup_jdk_dependencies ( )
http_archive (
name = " bzlmodrio-ni " ,
2025-01-16 12:52:43 -05:00
sha256 = " fff62c3cb3e83f9a0d0a01f1739477c9ca5e9a6fac05be1ad59dafcd385801f7 " ,
url = " https://github.com/wpilibsuite/bzlmodRio-ni/releases/download/2025.2.0/bzlmodRio-ni-2025.2.0.tar.gz " ,
2024-10-19 12:54:49 -04:00
)
load ( " @bzlmodrio-ni//:maven_cpp_deps.bzl " , " setup_legacy_bzlmodrio_ni_cpp_dependencies " )
setup_legacy_bzlmodrio_ni_cpp_dependencies ( )
http_archive (
name = " bzlmodrio-opencv " ,
2025-07-08 23:20:08 -04:00
sha256 = " 27dff7aaedd00165b1a94867616ebf383220532e3956892cec649197077a9d01 " ,
url = " https://github.com/wpilibsuite/bzlmodRio-opencv/releases/download/2025.4.10.0-3.bcr3/bzlmodRio-opencv-2025.4.10.0-3.bcr3.tar.gz " ,
2024-10-19 12:54:49 -04:00
)
load ( " @bzlmodrio-opencv//:maven_cpp_deps.bzl " , " setup_legacy_bzlmodrio_opencv_cpp_dependencies " )
setup_legacy_bzlmodrio_opencv_cpp_dependencies ( )
load ( " @bzlmodrio-opencv//:maven_java_deps.bzl " , " setup_legacy_bzlmodrio_opencv_java_dependencies " )
setup_legacy_bzlmodrio_opencv_java_dependencies ( )
2024-12-19 01:00:40 -05:00
2025-06-13 23:53:09 -04:00
http_archive (
name = " bzlmodrio-libssh " ,
2025-07-08 23:20:08 -04:00
sha256 = " f8fef627c7b393f7f6ed638e12b80ff90b2cfea11488b15214f25ce1e470723a " ,
url = " https://github.com/wpilibsuite/bzlmodRio-libssh/releases/download/2024.0.105-1.bcr1/bzlmodrio-libssh-2024.0.105-1.bcr1.tar.gz " ,
2025-06-13 23:53:09 -04:00
)
load ( " @bzlmodrio-libssh//:maven_cpp_deps.bzl " , " setup_legacy_bzlmodrio_libssh_cpp_dependencies " )
setup_legacy_bzlmodrio_libssh_cpp_dependencies ( )
2025-05-14 01:01:47 -04:00
# Setup quickbuf compiler
QUICKBUF_VERSION = " 1.3.2 "
http_file (
name = " quickbuffer_protoc_linux " ,
executable = True ,
sha256 = " f9a041bccaa7040db523666ef1b5fe9f6f94e70a82c88951f18f58aadd9c50b5 " ,
url = " https://repo1.maven.org/maven2/us/hebi/quickbuf/protoc-gen-quickbuf/ " + QUICKBUF_VERSION + " /protoc-gen-quickbuf- " + QUICKBUF_VERSION + " -linux-x86_64.exe " ,
)
http_file (
2025-07-08 23:20:08 -04:00
name = " quickbuffer_protoc_osx_x86-64 " ,
2025-05-14 01:01:47 -04:00
executable = True ,
sha256 = " ea307c2b69664ae7e7c69db4cddf5803187e5a34bceffd09a21652f0f16044f7 " ,
url = " https://repo1.maven.org/maven2/us/hebi/quickbuf/protoc-gen-quickbuf/ " + QUICKBUF_VERSION + " /protoc-gen-quickbuf- " + QUICKBUF_VERSION + " -osx-x86_64.exe " ,
)
2025-07-08 23:20:08 -04:00
http_file (
name = " quickbuffer_protoc_osx_aarch64 " ,
executable = True ,
sha256 = " a9abdee09d8b5ef0aa954b238536917313511deec11e1901994af26ade033e28 " ,
url = " https://repo1.maven.org/maven2/us/hebi/quickbuf/protoc-gen-quickbuf/ " + QUICKBUF_VERSION + " /protoc-gen-quickbuf- " + QUICKBUF_VERSION + " -osx-aarch_64.exe " ,
)
2025-05-14 01:01:47 -04:00
http_file (
name = " quickbuffer_protoc_windows " ,
executable = True ,
sha256 = " 27dc1f29764a62b5e6a813a4bcd63e81bbdc3394da760a44acae1025b4a89f1d " ,
url = " https://repo1.maven.org/maven2/us/hebi/quickbuf/protoc-gen-quickbuf/ " + QUICKBUF_VERSION + " /protoc-gen-quickbuf- " + QUICKBUF_VERSION + " -windows-x86_64.exe " ,
)
# Setup rules_proto
http_archive (
name = " rules_proto " ,
sha256 = " 0e5c64a2599a6e26c6a03d6162242d231ecc0de219534c38cb4402171def21e8 " ,
strip_prefix = " rules_proto-7.0.2 " ,
url = " https://github.com/bazelbuild/rules_proto/releases/download/7.0.2/rules_proto-7.0.2.tar.gz " ,
)
load ( " @rules_proto//proto:repositories.bzl " , " rules_proto_dependencies " )
rules_proto_dependencies ( )
load ( " @rules_proto//proto:setup.bzl " , " rules_proto_setup " )
rules_proto_setup ( )
2025-07-05 16:59:22 -07:00
load ( " @rules_pkg//:deps.bzl " , " rules_pkg_dependencies " )
rules_pkg_dependencies ( )
2025-07-22 13:26:20 -07:00
# Capture the repository environmental variables which specify the filter list for what architectures to build in CI.
load ( " //shared/bazel/rules:publishing_rule.bzl " , " publishing_repo " )
publishing_repo (
name = " com_wpilib_allwpilib_publishing_config " ,
)