bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "rules_apple", version = "4.3.3") bazel_dep(name = "rules_cc", version = "0.2.16") bazel_dep(name = "rules_rust", version = "0.68.1") bazel_dep(name = "bazel_skylib", version = "1.9.0") bazel_dep(name = "abseil-cpp", version = "20260107.0", repo_name = "com_google_absl") # version of prebuilt protoc in com_github_protobuf_prebuilt must match this. bazel_dep(name = "protobuf", version = "33.4", repo_name = "com_google_protobuf") bazel_dep(name = "googletest", version = "1.17.0.bcr.2", repo_name = "com_google_googletest") bazel_dep(name = "boringssl", version = "0.20251124.0") bazel_dep(name = "rules_foreign_cc", version = "0.15.1") git_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") git_repository( name = "beto-core", commit = "479289ef072b0880c0347d36937265e44f00f4ee", patch_cmds = [ "grep -q '^load(\"@rules_cc//cc:defs.bzl\", \"cc_binary\", \"cc_library\")' BUILD || sed -i '1iload(\"@rules_cc//cc:defs.bzl\", \"cc_binary\", \"cc_library\")' BUILD", ], remote = "https://beto-core.googlesource.com/beto-core", ) 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") crate = use_extension( "@rules_rust//crate_universe:extension.bzl", "crate", ) crate.from_cargo( name = "crate_index", cargo_lockfile = "@beto-core//:bazel_placeholder/Cargo.lock", manifests = [ "@beto-core//:bazel_placeholder/Cargo.toml", ], ) use_repo(crate, "crate_index") http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "com_google_ukey2", strip_prefix = "ukey2-master", urls = ["https://github.com/google/ukey2/archive/master.zip"], ) http_archive( name = "aappleby_smhasher", build_file_content = """ load("@rules_cc//cc:cc_library.bzl", "cc_library") package(default_visibility = ["//visibility:public"]) cc_library( name = "libmurmur3", srcs = ["src/MurmurHash3.cpp"], hdrs = ["src/MurmurHash3.h"], copts = ["-Wno-implicit-fallthrough"], licenses = ["unencumbered"], # MurmurHash is explicity public-domain )""", strip_prefix = "smhasher-master", urls = ["https://github.com/aappleby/smhasher/archive/master.zip"], ) http_archive( name = "nlohmann_json", build_file_content = """ load("@rules_cc//cc:cc_library.bzl", "cc_library") cc_library( name = "json", hdrs = glob([ "include/nlohmann/**/*.hpp", ]), includes = ["include"], visibility = ["//visibility:public"], alwayslink = True, )""", strip_prefix = "json-3.10.5", urls = [ "https://github.com/nlohmann/json/archive/refs/tags/v3.10.5.tar.gz", ], ) # ---------------------------------------------- # Nisaba: Script processing library from Google: # ---------------------------------------------- # We depend on some of core C++ libraries from Nisaba and use the fresh code # from the HEAD. See # https://github.com/google-research/nisaba http_archive( name = "com_google_nisaba", strip_prefix = "nisaba-main", url = "https://github.com/google-research/nisaba/archive/refs/heads/main.zip", ) # ------------------------------------------------------------------------- # Protocol buffer matches (should be part of gmock and gtest, but not yet): # https://github.com/inazarenko/protobuf-matchers http_archive( name = "com_github_protobuf_matchers", strip_prefix = "protobuf-matchers-master", urls = ["https://github.com/inazarenko/protobuf-matchers/archive/refs/heads/master.zip"], ) http_archive( name = "com_github_protobuf_prebuilt", build_file_content = """ filegroup( name = "protoc", srcs = ["bin/protoc"], visibility = ["//visibility:public"], )""", urls = [ "https://github.com/protocolbuffers/protobuf/releases/download/v32.0/protoc-32.0-linux-x86_64.zip", ], ) # Bazel Compile Commands Extractor (helly25 fork; see FORK.md for context) # https://github.com/helly25/bazel-compile-commands-extractor bazel_dep(name = "hedron_compile_commands", dev_dependency = True) # Bazel module name kept for backwards compat with existing consumers. git_override( module_name = "hedron_compile_commands", remote = "https://github.com/helly25/bazel-compile-commands-extractor.git", commit = "75ba4c31d3b74fa5fb57c7508220571d4e52f828", # Replace the commit hash with the latest from # https://github.com/helly25/bazel-compile-commands-extractor/commits/main # (or set up Renovate; see below). ) # Create a repo that exposes system-installed sdbus-c++ and libsystemd to Bazel. # # Important portability note: # Avoid hardcoding distro-specific library directories (for example # /usr/lib/x86_64-linux-gnu vs /usr/lib64). Instead, link by soname and let the # system linker/search path resolve the actual shared object location. new_local_repository = use_repo_rule( "@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository", ) new_local_repository( name = "libsystemd", path = "/usr", build_file_content = """ package(default_visibility = ["//visibility:public"]) load("@rules_cc//cc:defs.bzl", "cc_library") cc_library( name = "libsystemd", hdrs = glob(["include/systemd/*.h"]), includes = ["include"], linkopts = ["-lsystemd"], ) """, ) http_archive( name = "sdbus_cpp", urls = ["https://github.com/Kistler-Group/sdbus-cpp/archive/refs/tags/v2.2.0.tar.gz"], strip_prefix = "sdbus-cpp-2.2.0", # sha256 = "c180bdf44bb6ccba652019b8f2fc0a7f1a30222a76fbd1b6b55ebbc7a0166cb3", build_file_content = """\ load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake") filegroup( name = "all_srcs", srcs = glob(["**"]), visibility = ["//visibility:public"], ) cmake( name = "sdbus_cpp", lib_source = ":all_srcs", out_static_libs = ["libsdbus-c++.a"], cache_entries = { "SDBUSCPP_BUILD_CODEGEN": "OFF", "SDBUSCPP_BUILD_TESTS": "OFF", "SDBUSCPP_BUILD_EXAMPLES": "OFF", "SDBUSCPP_BUILD_DOCS": "OFF", "BUILD_SHARED_LIBS": "OFF", "SDBUSCPP_SDBUS_LIB": "systemd", "CMAKE_POSITION_INDEPENDENT_CODE": "ON", "CMAKE_C_STANDARD": "17", "CMAKE_C_STANDARD_REQUIRED": "ON", "CMAKE_C_EXTENSIONS": "ON", }, env = { # CMake still needs pkg-config to pass its internal configuration checks for systemd "PKG_CONFIG_PATH": "/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig", }, # Link the systemd dependency you defined in your WORKSPACE deps = ["@libsystemd//:libsystemd"], visibility = ["//visibility:public"], ) """ )