Files
nearby/MODULE.bazel
T

259 lines
8.3 KiB
Python

bazel_dep(name = "platforms", version = "1.1.0")
bazel_dep(name = "rules_apple", version = "4.3.3")
bazel_dep(name = "rules_cc", version = "0.2.18")
bazel_dep(name = "rules_shell", version = "0.6.1")
single_version_override(
module_name = "rules_swift",
version = "3.1.2",
)
bazel_dep(name = "rules_rust", version = "0.69.0")
bazel_dep(name = "bazel_skylib", version = "1.9.0")
bazel_dep(name = "abseil-cpp", version = "20260107.1", repo_name = "com_google_absl")
# version of prebuilt protoc in com_github_protobuf_prebuilt must match this.
bazel_dep(name = "protobuf", version = "35.1", 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.20260413.0")
bazel_dep(name = "rules_foreign_cc", version = "0.15.1")
bazel_dep(name = "gloop", version = "0.0.0")
local_path_override(
module_name = "gloop",
path = "third_party/gloop",
)
# for linux TUI
# Should update to 7.0.0
bazel_dep(name = "ftxui", version = "6.1.9")
bazel_dep(name = "rules_qt", version = "0.0.6")
single_version_override(
module_name = "rules_qt",
patch_strip = 1,
patches = ["//sharing/linux:rules_qt_wayland.patch"],
version = "0.0.6",
)
qt = use_extension("@rules_qt//extension:qt.bzl", "fetch")
qt.install(
name = "qt_linux_x86_64",
build_file = "@rules_qt//extension:qt/6.8.3/linux_x86_64.BUILD",
os = "linux",
version = "6.8.3",
)
use_repo(qt, "qt_linux_x86_64", "qt_mac_aarch64", "qt_windows_x86_64")
register_toolchains(
"@rules_qt//tools:all",
)
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_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "appimagetool_x86_64",
downloaded_file_path = "appimagetool-x86_64.AppImage",
executable = True,
sha256 = "ed4ce84f0d9caff66f50bcca6ff6f35aae54ce8135408b3fa33abfc3cb384eb0",
urls = [
"https://github.com/AppImage/appimagetool/releases/download/1.9.1/appimagetool-x86_64.AppImage",
],
)
http_file(
name = "appimage_runtime_x86_64",
downloaded_file_path = "runtime-x86_64",
executable = True,
sha256 = "2fca8b443c92510f1483a883f60061ad09b46b978b2631c807cd873a47ec260d",
urls = [
"https://github.com/AppImage/type2-runtime/releases/download/20251108/runtime-x86_64",
],
)
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/v35.1/protoc-35.1-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",
"CMAKE_INSTALL_LIBDIR": "lib",
},
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/lib64/pkgconfig:/usr/share/pkgconfig",
},
# Link the systemd dependency you defined in your WORKSPACE
deps = ["@libsystemd//:libsystemd"],
visibility = ["//visibility:public"],
)
"""
)