Skip to content

Generated Files

This page describes all files that rebaze generates during migration.

The Bazel module definition file:

module(
name = "myproject",
version = "0.1.0",
)
bazel_dep(name = "rules_cc", version = "0.1.1")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "googletest", version = "1.15.2")

The root build file with targets:

load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
cc_library(
name = "mylib",
srcs = ["src/lib.cpp"],
hdrs = ["include/mylib.h"],
includes = ["include"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "myapp",
srcs = ["src/main.cpp"],
deps = [":mylib"],
)

Pins the Bazel version:

9.0.0

Build configuration:

Terminal window
build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17
build --copt=-fPIC
build --copt=-Wall
test --test_output=errors

Generated when using pkg-config dependencies:

Alias targets for dependency resolution:

load(":config.bzl", "STRATEGY")
alias(
name = "zlib",
actual = select({
":use_system": ":zlib_system",
":use_source": ":zlib_source",
}),
visibility = ["//visibility:public"],
)

Central configuration:

STRATEGY = {
"default": "system",
"zlib": "source",
}
  • Directorymyproject/
    • MODULE.bazel
    • BUILD.bazel
    • .bazelversion
    • .bazelrc
    • Directorythird_party/ (if pkg-config deps)
      • BUILD.bazel
      • config.bzl
      • source.bzl
      • system_deps.bzl
    • Directorysrc/
    • Directoryinclude/

After migration, you can customize:

  1. MODULE.bazel - Add dependencies, change versions
  2. BUILD.bazel - Add targets, modify visibility
  3. third_party/config.bzl - Change strategies per-package
  4. .bazelrc - Add custom build configurations