Skip to content

Commit

Permalink
fix: export headers with top-level Bazel targets (#12762)
Browse files Browse the repository at this point in the history
  • Loading branch information
coryan committed Sep 29, 2023
1 parent 164d8ab commit b082b9a
Show file tree
Hide file tree
Showing 128 changed files with 1,016 additions and 67 deletions.
61 changes: 47 additions & 14 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ exports_files([
])

load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
load("//bazel:library_dir_name.bzl", "google_cloud_cpp_library_dir_name")
load("//bazel:library_names.bzl", "hdrs_filegroup_name", "library_dir_name", "mocks_filegroup_name")
load(":libraries.bzl", "GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES", "GOOGLE_CLOUD_CPP_GA_LIBRARIES", "GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES")

EXPERIMENTAL_LIBRARIES = GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES
Expand All @@ -34,74 +34,99 @@ NO_MOCK_LIBRARIES = ["oauth2"]

[cc_library(
name = "experimental-{library}".format(library = library),
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = hdrs_filegroup_name(library),
)],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in EXPERIMENTAL_LIBRARIES]

[cc_library(
name = "experimental-{library}_mocks".format(library = library),
testonly = True,
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = mocks_filegroup_name(library),
)],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}_mocks".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}_mocks".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in EXPERIMENTAL_LIBRARIES if library not in NO_MOCK_LIBRARIES]

[cc_library(
name = "experimental-{library}".format(library = library),
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = hdrs_filegroup_name(library),
)],
deprecation = "this library is now GA, please use //:{library} instead.".format(library = library),
tags = ["manual"],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in TRANSITION_LIBRARIES]

[cc_library(
name = "experimental-{library}_mocks".format(library = library),
testonly = True,
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = mocks_filegroup_name(library),
)],
deprecation = "this library is now GA, please use //:{library}_mocks instead.".format(library = library),
tags = ["manual"],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}_mocks".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}_mocks".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in TRANSITION_LIBRARIES]
) for library in TRANSITION_LIBRARIES if library not in NO_MOCK_LIBRARIES]

[cc_library(
name = "{library}".format(library = library),
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = hdrs_filegroup_name(library),
)],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in GA_LIBRARIES + TRANSITION_LIBRARIES]

[cc_library(
name = "{library}_mocks".format(library = library),
testonly = True,
hdrs = ["//google/cloud/{dir}:{group}".format(
dir = library_dir_name(library),
group = mocks_filegroup_name(library),
)],
deps = [
"//google/cloud/{library_dir}:google_cloud_cpp_{library}_mocks".format(
"//google/cloud/{dir}:google_cloud_cpp_{library}_mocks".format(
dir = library_dir_name(library),
library = library,
library_dir = google_cloud_cpp_library_dir_name(library),
),
],
) for library in GA_LIBRARIES + TRANSITION_LIBRARIES if library not in NO_MOCK_LIBRARIES]

cc_library(
name = "bigquery-mocks",
testonly = True,
hdrs = ["//google/cloud/bigquery:mocks"],
deprecation = "please use //:bigquery_mocks instead.",
tags = ["manual"],
deps = [
Expand All @@ -112,6 +137,7 @@ cc_library(
cc_library(
name = "iam-mocks",
testonly = True,
hdrs = ["//google/cloud/iam:mocks"],
deprecation = "please use //:iam_mocks instead.",
tags = ["manual"],
deps = [
Expand All @@ -127,6 +153,7 @@ bool_flag(

cc_library(
name = "experimental-storage_grpc",
hdrs = ["//google/cloud/storage:public_grpc_hdrs"],
tags = ["manual"],
deps = [
"//google/cloud/storage:google_cloud_cpp_storage_grpc",
Expand All @@ -136,6 +163,7 @@ cc_library(
# TODO(12698) - remove transition name (experimental-storage-grpc)
cc_library(
name = "experimental-storage-grpc",
hdrs = ["//google/cloud/storage:public_grpc_hdrs"],
tags = ["manual"],
deps = [
":experimental-storage_grpc",
Expand All @@ -144,13 +172,15 @@ cc_library(

cc_library(
name = "common",
hdrs = ["//google/cloud:common_hdrs"],
deps = [
"//google/cloud:google_cloud_cpp_common_private",
],
)

cc_library(
name = "grpc_utils",
hdrs = ["//google/cloud:grpc_utils_hdrs"],
deps = [
"//google/cloud:google_cloud_cpp_grpc_utils_private",
],
Expand All @@ -159,13 +189,15 @@ cc_library(
cc_library(
name = "mocks",
testonly = True,
hdrs = ["//google/cloud:mocks"],
deps = [
"//google/cloud:google_cloud_cpp_mocks",
],
)

cc_library(
name = "experimental-opentelemetry",
hdrs = ["//google/cloud/opentelemetry:public_hdrs"],
deprecation = "this library is now GA, please use //:opentelemetry instead.",
tags = ["manual"],
deps = [
Expand All @@ -175,6 +207,7 @@ cc_library(

cc_library(
name = "opentelemetry",
hdrs = ["//google/cloud/opentelemetry:public_hdrs"],
deps = [
"//google/cloud/opentelemetry:google_cloud_cpp_opentelemetry",
],
Expand Down
12 changes: 11 additions & 1 deletion bazel/library_dir_name.bzl → bazel/library_names.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.

def google_cloud_cpp_library_dir_name(library):
def library_dir_name(library):
if library.startswith("compute_"):
return "compute"
return library

def mocks_filegroup_name(library):
if library.startswith("compute_"):
return library.removeprefix("compute_") + "_mock_hdrs"
return "mocks"

def hdrs_filegroup_name(library):
if library.startswith("compute_"):
return library.removeprefix("compute_") + "_public_hdrs"
return "public_hdrs"
7 changes: 7 additions & 0 deletions generator/internal/scaffold_generator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -398,9 +398,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)
filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)
filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)
cc_library(
Expand Down
18 changes: 18 additions & 0 deletions google/cloud/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ config_setting(
},
)

filegroup(
name = "common_hdrs",
srcs = [h for h in google_cloud_cpp_common_hdrs if not h.startswith("internal/")],
visibility = ["//:__pkg__"],
)

cc_library(
name = "google_cloud_cpp_common_private",
srcs = google_cloud_cpp_common_srcs + ["internal/build_info.cc"],
Expand Down Expand Up @@ -161,6 +167,12 @@ cc_library(
],
) for benchmark in google_cloud_cpp_common_benchmarks]

filegroup(
name = "grpc_utils_hdrs",
srcs = [h for h in google_cloud_cpp_grpc_utils_hdrs if ("/internal/" not in h and "grpc_utils/" not in h)],
visibility = ["//:__pkg__"],
)

cc_library(
name = "google_cloud_cpp_grpc_utils_private",
srcs = google_cloud_cpp_grpc_utils_srcs,
Expand Down Expand Up @@ -242,6 +254,12 @@ cc_library(
],
) for test in google_cloud_cpp_grpc_utils_benchmarks]

filegroup(
name = "mocks",
srcs = [h for h in google_cloud_cpp_mocks_hdrs if not h.startswith("internal/")],
visibility = ["//:__pkg__"],
)

cc_library(
name = "google_cloud_cpp_mocks",
testonly = True,
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/accessapproval/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/accesscontextmanager/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/advisorynotifications/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/aiplatform/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/alloydb/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/apigateway/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/apigeeconnect/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
7 changes: 7 additions & 0 deletions google/cloud/apikeys/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,16 @@ filegroup(
srcs = glob([d + "*.h" for d in src_dirs]),
)

filegroup(
name = "public_hdrs",
srcs = glob([d + "*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

filegroup(
name = "mocks",
srcs = glob([d + "mocks/*.h" for d in service_dirs]),
visibility = ["//:__pkg__"],
)

cc_library(
Expand Down
Loading

0 comments on commit b082b9a

Please sign in to comment.