diff --git a/bzlmod/01-depend_on_bazel_module/.bazelversion b/bzlmod/01-depend_on_bazel_module/.bazelversion index 56b6be4eb..0c227fb88 100644 --- a/bzlmod/01-depend_on_bazel_module/.bazelversion +++ b/bzlmod/01-depend_on_bazel_module/.bazelversion @@ -1 +1 @@ -8.3.1 +9.* diff --git a/bzlmod/01-depend_on_bazel_module/BUILD b/bzlmod/01-depend_on_bazel_module/BUILD index 4dd0d2492..8b1cfb6b5 100644 --- a/bzlmod/01-depend_on_bazel_module/BUILD +++ b/bzlmod/01-depend_on_bazel_module/BUILD @@ -3,5 +3,5 @@ load("@rules_cc//cc:cc_binary.bzl", "cc_binary") cc_binary( name = "main", srcs = ["main.cc"], - deps = ["@com_github_google_glog//:glog"], + deps = ["@abseil-cpp//absl/strings"], ) diff --git a/bzlmod/01-depend_on_bazel_module/MODULE.bazel b/bzlmod/01-depend_on_bazel_module/MODULE.bazel index 8dfe33813..17bd07c8c 100644 --- a/bzlmod/01-depend_on_bazel_module/MODULE.bazel +++ b/bzlmod/01-depend_on_bazel_module/MODULE.bazel @@ -7,4 +7,4 @@ bazel_dep(name = "rules_cc", version = "0.0.17") # 1. The metadata of glog is fetched from the BCR, including its dependencies (gflags). # 2. The `repo_name` attribute allows users to reference this dependency via the `com_github_google_glog` repo name. -bazel_dep(name = "glog", version = "0.5.0", repo_name = "com_github_google_glog") +bazel_dep(name = "abseil-cpp", version = "20240722.0") diff --git a/bzlmod/01-depend_on_bazel_module/main.cc b/bzlmod/01-depend_on_bazel_module/main.cc index 33c2a98c4..e006c7ad7 100644 --- a/bzlmod/01-depend_on_bazel_module/main.cc +++ b/bzlmod/01-depend_on_bazel_module/main.cc @@ -1,9 +1,8 @@ -#include +#include +#include "absl/strings/str_cat.h" int main(int argc, char* argv[]) { - // Initialize Google’s logging library. - google::InitGoogleLogging(argv[0]); - int num_cookies = 42; - LOG(INFO) << "Found " << num_cookies << " cookies"; + std::string s = absl::StrCat("Found ", num_cookies, " cookies"); + std::cout << s << std::endl; } diff --git a/bzlmod/02-override_bazel_module/BUILD b/bzlmod/02-override_bazel_module/BUILD index 5d9b5339a..e54bbb7b7 100644 --- a/bzlmod/02-override_bazel_module/BUILD +++ b/bzlmod/02-override_bazel_module/BUILD @@ -8,7 +8,7 @@ cc_binary( name = "main", srcs = ["main.cc"], deps = [ - "@com_github_google_glog//:glog", "@lib_a", + "@com_googlesource_re2//:re2", ], ) diff --git a/bzlmod/02-override_bazel_module/MODULE.bazel b/bzlmod/02-override_bazel_module/MODULE.bazel index 56242f26e..d135f18d7 100644 --- a/bzlmod/02-override_bazel_module/MODULE.bazel +++ b/bzlmod/02-override_bazel_module/MODULE.bazel @@ -3,25 +3,30 @@ module( version = "0.0.1", ) -bazel_dep(name = "rules_cc", version = "0.0.17") -bazel_dep(name = "glog", version = "0.5.0", repo_name = "com_github_google_glog") -# Override glog to a fork version with archive_override. +# Override abseil-cpp to the 20250814.1 LTS version with archive_override. +# This demonstrates how to use archive_override to point to a specific tarball. +bazel_dep(name = "abseil-cpp", version = "20240722.0") archive_override( - module_name = "glog", - integrity = "sha256-EH4o3n+qkfcsEFODkkRzs1/XAH9ej2V77gv05eplB5k=", - strip_prefix = "glog-9401faa19e0424791243827b8e95efd3d0d8db23", - urls = ["https://github.com/meteorcloudy/glog/archive/9401faa19e0424791243827b8e95efd3d0d8db23.tar.gz"], + module_name = "abseil-cpp", + integrity = "sha256-FpL3fRc5us8/lDNxiLeFg88JurfkINLcbFYFpPhnhaE=", + strip_prefix = "abseil-cpp-20250814.1", + urls = ["https://github.com/abseil/abseil-cpp/releases/download/20250814.1/abseil-cpp-20250814.1.tar.gz"], ) -# Override gflag to a fork version with git_override. -# gflag is still an indirect dependency, the override itself doesn't give the root module visibility on gflags. +# Override re2 to a specific commit with git_override. +# This demonstrates how to use git_override to depend on a specific commit. +bazel_dep(name = "re2", version = "2024-07-02", repo_name = "com_googlesource_re2") git_override( - module_name = "gflags", - commit = "95995169e86f3fedd19696df5b1811d441c462a2", - remote = "https://github.com/meteorcloudy/gflags.git", + module_name = "re2", + commit = "e7aec5985072c1dbe735add802653ef4b36c231a", + remote = "https://github.com/google/re2.git", ) + +bazel_dep(name = "rules_cc", version = "0.0.17") + + # Patch bazel skylib 1.7.1 with a local patch file. bazel_dep(name = "bazel_skylib", version = "1.7.1") single_version_override( @@ -38,3 +43,5 @@ local_path_override( module_name = "lib_a", path = "./lib_a", ) + + diff --git a/bzlmod/02-override_bazel_module/lib_a/BUILD b/bzlmod/02-override_bazel_module/lib_a/BUILD index 3e0947e4d..a08cd2aa4 100644 --- a/bzlmod/02-override_bazel_module/lib_a/BUILD +++ b/bzlmod/02-override_bazel_module/lib_a/BUILD @@ -6,5 +6,5 @@ cc_library( name = "lib_a", srcs = ["lib_a.cc"], hdrs = ["lib_a.h"], - deps = ["@com_github_google_glog//:glog"], + visibility = ["//visibility:public"], ) diff --git a/bzlmod/02-override_bazel_module/lib_a/MODULE.bazel b/bzlmod/02-override_bazel_module/lib_a/MODULE.bazel index db015f796..f2b77e580 100644 --- a/bzlmod/02-override_bazel_module/lib_a/MODULE.bazel +++ b/bzlmod/02-override_bazel_module/lib_a/MODULE.bazel @@ -4,4 +4,4 @@ module( ) bazel_dep(name = "rules_cc", version = "0.0.17") -bazel_dep(name = "glog", version = "0.5.0", repo_name = "com_github_google_glog") + diff --git a/bzlmod/02-override_bazel_module/lib_a/lib_a.cc b/bzlmod/02-override_bazel_module/lib_a/lib_a.cc index 9ad7f72ab..308c63488 100644 --- a/bzlmod/02-override_bazel_module/lib_a/lib_a.cc +++ b/bzlmod/02-override_bazel_module/lib_a/lib_a.cc @@ -1,5 +1,5 @@ -#include +#include void lib_a() { - LOG(INFO) << "Hello from module A!"; + std::cout << "Hello from module A!" << std::endl; } diff --git a/bzlmod/02-override_bazel_module/main.cc b/bzlmod/02-override_bazel_module/main.cc index 398fd0304..c2318ef29 100644 --- a/bzlmod/02-override_bazel_module/main.cc +++ b/bzlmod/02-override_bazel_module/main.cc @@ -1,11 +1,12 @@ -#include - +#include #include "lib_a.h" +#include "re2/re2.h" int main(int argc, char* argv[]) { - // Initialize Google’s logging library. - google::InitGoogleLogging(argv[0]); - - LOG(INFO) << "Hello from the main module!"; + std::cout << "Hello from the main module!" << std::endl; lib_a(); + + if (RE2::FullMatch("bazel", "b.*l")) { + std::cout << "RE2 match!" << std::endl; + } }