Which Bazel rulesets these migrations used, at which versions, and where rules were written by hand instead: docs/BAZEL-RULES.md.
- Source: https://github.com/google/boringssl
- Verified build equivalence
- Discovered targets missing from Bazel build (
bssl_shim, see https://github.com/ulfjack/boringssl/tree/bazel-missing-ssl-shim)
- Source: https://github.com/abseil/abseil-cpp
- Verified build equivalence
- CMake emits -std=gnu++17 (GNU extensions on); Bazel uses -std=c++17
- Source: https://github.com/google/re2
- Verified build equivalence
- CMake emits -std=gnu++17 (GNU extensions on); Bazel uses -std=c++17
- Source: https://github.com/fmtlib/fmt
- Generated BUILD files
- Source: https://github.com/gabime/spdlog
- Generated BUILD files
- Source: https://github.com/leethomason/tinyxml2
- Generated BUILD files
CMAKE_CXX_VISIBILITY_PRESET=hiddenandVISIBILITY_INLINES_HIDDEN=YES
- Source: https://github.com/madler/zlib
- Generated BUILD files
-fPICin cmake
- Source: https://github.com/google/guava
- Generated BUILD files
- Maven compiles
module-info.javawith-source=9 -target=9, everything else with-source=8 -target=8 - However, Maven uses a locally installed JDK (e.g., Jdk 25)
- Maven dependencies: JSpecify, Error Prone Annotations, J2objc Annotations, Guava FailureAccess
- Bazel build uses
rules_jvm_external
- Source: https://github.com/microsoft/vscode
- Generated BUILD files, see https://github.com/ulfjack/vscode/tree/vscode-with-bazel
- Generated custom Bazel rules:
ts_programbundle_target_nameesbuild_bundlevscode_appnodegyp_module
- Case study, incl. byte parity (7710/7710
.js) and what a bespoke build with no extractable action graph costs: docs/CASE-vscode-migration.md