github.com/distbuild/reclient@v0.0.0-20240401075343-3de72e395564/pkg/version/BUILD.bazel (about)

     1  load("@bazel_skylib//rules:expand_template.bzl", "expand_template")
     2  load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
     3  load("//:settings.bzl", "SDK_COMMIT")
     4  load("//:version.bzl", "VERSION_MAJOR", "VERSION_MINOR", "VERSION_PATCH")
     5  
     6  # gazelle:exclude *.h
     7  
     8  go_library(
     9      name = "version",
    10      srcs = ["version.go"],
    11      importpath = "github.com/bazelbuild/reclient/pkg/version",
    12      visibility = ["//visibility:public"],
    13      # x_defs attribute substitutes the string with given values.
    14      # Refer to https://github.com/bazelbuild/rules_go/blob/master/go/core.rst#defines-and-stamping.
    15      x_defs = {
    16          "github.com/bazelbuild/reclient/pkg/version.versionMajor": VERSION_MAJOR,
    17          "github.com/bazelbuild/reclient/pkg/version.versionMinor": VERSION_MINOR,
    18          "github.com/bazelbuild/reclient/pkg/version.versionPatch": VERSION_PATCH,
    19          # "{STABLE_VERSION_SHA}" is the git-sha is produced by the workspace status
    20          #  command set in ".bazelrc" file of this repository.
    21          "github.com/bazelbuild/reclient/pkg/version.versionSHA": "{STABLE_VERSION_SHA}",
    22          "github.com/bazelbuild/reclient/pkg/version.sdkVersionSHA": SDK_COMMIT,
    23      },
    24      deps = [
    25          "//internal/pkg/rbeflag",
    26          "@com_github_golang_glog//:glog",
    27      ],
    28  )
    29  
    30  go_test(
    31      name = "version_test",
    32      srcs = ["version_test.go"],
    33      embed = [":version"],
    34  )
    35  
    36  genrule(
    37      name = "stable_status",
    38      outs = ["stable_status.h"],
    39      cmd = """
    40          echo "#ifndef _PKG_VERSION_STABLE_STATUS_H" > $@;
    41          echo "# define _PKG_VERSION_STABLE_STATUS_H" >> $@;
    42          cat bazel-out/stable-status.txt | sed 's/\\(.*\\) \\(.*\\)/# define \\1 "\\2"/' >> $@;
    43          echo "#endif // _PKG_VERSION_STABLE_STATUS_H" >> $@;
    44      """,
    45      stamp = 1,
    46  )
    47  
    48  expand_template(
    49      name = "version_h",
    50      out = "version.h",
    51      substitutions = select({
    52          "//:clangscandeps_input_processor_config": {
    53              "{INPUT_PROCESSOR}": "ClangscandepsIPService",
    54              "{VERSION_MAJOR}": VERSION_MAJOR,
    55              "{VERSION_MINOR}": VERSION_MINOR,
    56              "{VERSION_PATCH}": VERSION_PATCH,
    57          },
    58          "//:goma_input_processor_config": {
    59              "{INPUT_PROCESSOR}": "GomaIPService",
    60              "{VERSION_MAJOR}": VERSION_MAJOR,
    61              "{VERSION_MINOR}": VERSION_MINOR,
    62              "{VERSION_PATCH}": VERSION_PATCH,
    63          },
    64      }),
    65      target_compatible_with = select({
    66          "//:goma_input_processor_config": [],
    67          "//:clangscandeps_input_processor_config": [],
    68          "//conditions:default": ["@platforms//:incompatible"],
    69      }),
    70      template = "version.tmpl.h",
    71  )
    72  
    73  cc_library(
    74      name = "version_cc",
    75      srcs = [
    76          "stable_status.h",
    77          "version.h",
    78      ],
    79      hdrs = [
    80          "version.h",
    81      ],
    82      visibility = ["//visibility:public"],
    83  )