# Copyright 2026 Open Source Robotics Foundation, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. bazel_dep(name = "zenoh-cpp") local_path_override( module_name = "zenoh-cpp", path = "..", ) bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "rules_cc", version = "0.2.16") bazel_dep(name = "rules_rust", version = "0.68.1") bazel_dep(name = "rules_shell", version = "0.6.1") # This is the rust edition and version used in the upstream zenoh-cpp project. rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain( edition = "2021", versions = ["1.85.0"], ) use_repo(rust, "rust_toolchains") register_toolchains( "@rust_toolchains//:all", ) # We have to make use of a nightly toolchain to build the zenohd binary. rust_host_tools = use_extension("@rules_rust//rust:extensions.bzl", "rust_host_tools") rust_host_tools.host_tools( name = "rust_host_tools_nightly", version = "nightly", ) use_repo( rust_host_tools, "rust_host_tools_nightly", ) # When we create the crate spec for zenohd, we must annotate it to make sure the # binries are generated. We also have to pin the versuion of the time crate to # avoid pulling in time-macros 0.2.27+ which uses nightly-only features. bindeps = use_extension("@rules_rust//crate_universe:extension.bzl", "crate") bindeps.spec( artifact = "bin", features = ["shared-memory"], package = "zenohd", version = "1.7.2", ) bindeps.spec( package = "time-macros", version = "=0.2.22", ) bindeps.annotation( crate = "zenohd", gen_all_binaries = True, ) bindeps.from_specs( name = "zenoh_cpp_bindeps", host_tools = "@rust_host_tools_nightly", ) use_repo(bindeps, "zenoh_cpp_bindeps")