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 )