Skip to content

Commit

Permalink
[Bazel/C++] Move core C++ implementation to //src/google/protobuf pac…
Browse files Browse the repository at this point in the history
…kage. (#9988)

This is somewhat of a rough cut, since it doesn't split apart the lite and full targets, or unit tests. However, it does split sources under src/google/protobuf into a separate package, which is a fairly impactful change.
  • Loading branch information
dlj-NaN committed May 18, 2022
1 parent d2292fc commit 171a6b1
Show file tree
Hide file tree
Showing 25 changed files with 848 additions and 773 deletions.
746 changes: 123 additions & 623 deletions BUILD.bazel

Large diffs are not rendered by default.

20 changes: 10 additions & 10 deletions java/core/BUILD.bazel
Expand Up @@ -191,7 +191,7 @@ java_export(
maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_JAVA_VERSION,
pom_template = "pom_template.xml",
resources = [
"//:built_in_runtime_protos",
"//src/google/protobuf:descriptor_proto_srcs",
"//:well_known_type_protos",
],
tags = ["manual"],
Expand Down Expand Up @@ -242,9 +242,9 @@ proto_library(
deps = [
"//:any_proto",
"//:descriptor_proto",
"//:generic_test_protos",
"//:lite_test_protos",
"//:wrappers_proto",
"//src/google/protobuf:generic_test_protos",
],
)

Expand All @@ -253,7 +253,7 @@ java_proto_library(
visibility = [
"//java:__subpackages__",
],
deps = ["//:generic_test_protos"],
deps = ["//src/google/protobuf:generic_test_protos"],
)

java_proto_library(
Expand All @@ -279,8 +279,8 @@ java_library(
deps = [
":core",
":generic_test_protos_java_proto",
":lite_test_protos_java_proto",
":java_test_protos_java_proto",
":lite_test_protos_java_proto",
"@maven//:com_google_guava_guava",
"@maven//:junit_junit",
],
Expand Down Expand Up @@ -322,12 +322,12 @@ junit_tests(
"src/test/java/com/google/protobuf/TestUtilLite.java",
],
),
data = ["//:testdata"],
data = ["//src/google/protobuf:testdata"],
deps = [
":core",
":generic_test_protos_java_proto",
":lite_test_protos_java_proto",
":java_test_protos_java_proto",
":lite_test_protos_java_proto",
":test_util",
"@maven//:com_google_guava_guava",
"@maven//:com_google_truth_truth",
Expand Down Expand Up @@ -360,7 +360,7 @@ java_lite_proto_library(
"//java/kotlin-lite:__pkg__",
"//java/lite:__pkg__",
],
deps = ["//:generic_test_protos"],
deps = ["//src/google/protobuf:generic_test_protos"],
)

java_lite_proto_library(
Expand Down Expand Up @@ -402,9 +402,9 @@ java_library(
],
deps = [
":generic_test_protos_java_proto_lite",
":lite_test_protos_java_proto_lite",
":java_test_protos_java_proto_lite",
":lite_runtime_only",
":lite_test_protos_java_proto_lite",
"@maven//:com_google_guava_guava",
"@maven//:junit_junit",
],
Expand Down Expand Up @@ -461,13 +461,13 @@ junit_tests(
["src/test/java/**/*.java"],
exclude = LITE_TEST_EXCLUSIONS,
),
data = ["//:testdata"],
data = ["//src/google/protobuf:testdata"],
test_prefix = "Lite",
deps = [
":generic_test_protos_java_proto_lite",
":lite_test_protos_java_proto_lite",
":java_test_protos_java_proto_lite",
":lite",
":lite_test_protos_java_proto_lite",
":test_util_lite",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
Expand Down
4 changes: 2 additions & 2 deletions java/kotlin-lite/BUILD.bazel
Expand Up @@ -140,7 +140,7 @@ internal_gen_kt_protos(
internal_gen_kt_protos(
name = "gen_kotlin_unittest_lite",
lite = True,
deps = ["//:kt_unittest_lite"],
deps = ["//src/google/protobuf:lite_test_protos"],
)

kt_jvm_library(
Expand All @@ -162,7 +162,7 @@ kt_jvm_library(
internal_gen_kt_protos(
name = "gen_kotlin_proto3_unittest_lite",
lite = True,
deps = ["//:kt_proto3_unittest"],
deps = ["//src/google/protobuf:kt_proto3_unittest_protos"],
)

kt_jvm_library(
Expand Down
6 changes: 3 additions & 3 deletions java/kotlin/BUILD.bazel
Expand Up @@ -59,7 +59,7 @@ kt_jvm_export(
maven_coordinates = "com.google.protobuf:protobuf-kotlin:%s" % PROTOBUF_JAVA_VERSION,
pom_template = "//java/kotlin:pom_template.xml",
resources = [
"//:built_in_runtime_protos",
"//src/google/protobuf:descriptor_proto_srcs",
"//:well_known_type_protos",
],
tags = ["manual"],
Expand Down Expand Up @@ -224,7 +224,7 @@ internal_gen_kt_protos(
internal_gen_kt_protos(
name = "gen_kotlin_unittest",
visibility = ["//java:__subpackages__"],
deps = ["//:kt_unittest"],
deps = ["//src/google/protobuf:kt_unittest_protos"],
)

kt_jvm_library(
Expand All @@ -246,7 +246,7 @@ kt_jvm_library(

internal_gen_kt_protos(
name = "gen_kotlin_proto3_unittest",
deps = ["//:kt_proto3_unittest"],
deps = ["//src/google/protobuf:kt_proto3_unittest_protos"],
)

kt_jvm_library(
Expand Down
2 changes: 1 addition & 1 deletion java/lite/BUILD.bazel
Expand Up @@ -71,8 +71,8 @@ junit_tests(
deps = [
":lite",
"//java/core:generic_test_protos_java_proto_lite",
"//java/core:lite_test_protos_java_proto_lite",
"//java/core:java_test_protos_java_proto_lite",
"//java/core:lite_test_protos_java_proto_lite",
"//java/core:test_util_lite",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
Expand Down
29 changes: 4 additions & 25 deletions kokoro/linux/bazel/build.sh
Expand Up @@ -7,16 +7,6 @@ set -ex
use_bazel.sh 4.0.0
bazel version

# Print bazel testlogs to stdout when tests failed.
function print_test_logs {
# TODO(yannic): Only print logs of failing tests.
testlogs_dir=$(bazel info bazel-testlogs)
testlogs=$(find "${testlogs_dir}" -name "*.log")
for log in $testlogs; do
cat "${log}"
done
}

# Change to repo root
cd $(dirname $0)/../../..

Expand All @@ -25,24 +15,13 @@ git submodule update --init --recursive
# Disabled for now, re-enable if appropriate.
# //:build_files_updated_unittest \

trap print_test_logs EXIT
bazel test -k --copt=-Werror --host_copt=-Werror \
bazel test \
-k --copt=-Werror --host_copt=-Werror --test_output=errors \
//build_defs:all \
//java:tests \
//:protoc \
//:protobuf \
//src/... \
//:protobuf_python \
//:protobuf_test \
//src/google/protobuf/compiler/... \
//src/google/protobuf/io:all \
//src/google/protobuf/stubs:all \
//src/google/protobuf/testing:all \
//src/google/protobuf/util/...
trap - EXIT

pushd examples
bazel build //...
popd
@com_google_protobuf_examples//...

# Verify that we can build successfully from generated tar files.
./autogen.sh && ./configure && make -j$(nproc) dist
Expand Down
9 changes: 2 additions & 7 deletions kokoro/linux/bazel_distcheck/build.sh
Expand Up @@ -19,13 +19,8 @@ TEST_TARGETS=(
//conformance:all
//java:tests
//python:all
//:protobuf_test
//src/google/protobuf/compiler/...
//src/google/protobuf/io:all
//src/google/protobuf/stubs:all
//src/google/protobuf/testing:all
//src/google/protobuf/util/...
@com_google_protobuf_examples//...
//src/...
@com_google_protobuf_examples//...
)

CONTAINER_NAME=gcr.io/protobuf-build/bazel/linux
Expand Down
28 changes: 5 additions & 23 deletions pkg/BUILD.bazel
Expand Up @@ -16,18 +16,7 @@ package_naming(

pkg_files(
name = "wkt_protos_files",
srcs = [
"//:any_proto",
"//:api_proto",
"//:duration_proto",
"//:empty_proto",
"//:field_mask_proto",
"//:source_context_proto",
"//:struct_proto",
"//:timestamp_proto",
"//:type_proto",
"//:wrappers_proto",
],
srcs = ["//src/google/protobuf:well_known_type_protos"],
prefix = "include/google/protobuf",
visibility = ["//visibility:private"],
)
Expand Down Expand Up @@ -97,16 +86,10 @@ pkg_filegroup(
srcs = [
":dist_files",
"//:common_dist_files",
"//:cpp_dist_files",
"//benchmarks:all_dist_files",
"//build_defs:dist_files",
"//conformance:all_dist_files",
"//src/google/protobuf/compiler:all_dist_files",
"//src/google/protobuf/io:dist_files",
"//src/google/protobuf/stubs:dist_files",
"//src/google/protobuf/testing:dist_files",
"//src/google/protobuf/util:dist_files",
"//src/google/protobuf/util/internal:dist_files",
"//src:all_dist_files",
"@com_google_protobuf_examples//:dist_files",
],
)
Expand All @@ -115,8 +98,7 @@ pkg_filegroup(
name = "cpp_srcs",
srcs = [
":dist_common",
"//:cpp_dist_files",
"//src/google/protobuf/compiler:all_dist_files",
"//src:all_dist_files",
],
)

Expand Down Expand Up @@ -359,8 +341,8 @@ cc_dist_library(
}),
tags = ["manual"],
deps = [
"//:arena",
"//:protobuf_lite",
"//src/google/protobuf:arena",
"//src/google/protobuf/io",
"//src/google/protobuf/io:io_win32",
"//src/google/protobuf/stubs:lite",
Expand All @@ -378,9 +360,9 @@ cc_dist_library(
}),
tags = ["manual"],
deps = [
"//:arena",
"//:protobuf",
"//:protobuf_lite",
"//src/google/protobuf:arena",
"//src/google/protobuf/compiler:importer",
"//src/google/protobuf/io",
"//src/google/protobuf/io:gzip_stream",
Expand Down
6 changes: 3 additions & 3 deletions python/BUILD.bazel
Expand Up @@ -52,7 +52,7 @@ py_proto_library(
internal_copy_files(
name = "copied_wkt_proto_files",
srcs = [
"//:built_in_runtime_protos",
"//src/google/protobuf:descriptor_proto_srcs",
"//:well_known_type_protos",
],
strip_prefix = "src",
Expand Down Expand Up @@ -254,7 +254,7 @@ py_test(
name = "message_test",
srcs = ["google/protobuf/internal/message_test.py"],
data = glob(["testdata/golden_pickle_*"]) + [
"//:testdata",
"//src/google/protobuf:testdata",
],
imports = ["."],
deps = [":python_test_lib"],
Expand Down Expand Up @@ -298,7 +298,7 @@ py_test(
py_test(
name = "text_format_test",
srcs = ["google/protobuf/internal/text_format_test.py"],
data = ["//:testdata"],
data = ["//src/google/protobuf:testdata"],
imports = ["."],
deps = [":python_test_lib"],
)
Expand Down
35 changes: 35 additions & 0 deletions src/BUILD.bazel
@@ -0,0 +1,35 @@
################################################################################
# Protocol Buffers: C++ Runtime
################################################################################

# Most rules are under google/protobuf. This package exists for convenience.
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")

pkg_files(
name = "dist_files",
srcs = glob(["**"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//src:__pkg__"],
)

pkg_filegroup(
name = "all_dist_files",
srcs = [
":dist_files",
"//src/google/protobuf:dist_files",
"//src/google/protobuf/compiler:dist_files",
"//src/google/protobuf/compiler/cpp:dist_files",
"//src/google/protobuf/compiler/csharp:dist_files",
"//src/google/protobuf/compiler/java:dist_files",
"//src/google/protobuf/compiler/objectivec:dist_files",
"//src/google/protobuf/compiler/php:dist_files",
"//src/google/protobuf/compiler/python:dist_files",
"//src/google/protobuf/compiler/ruby:dist_files",
"//src/google/protobuf/io:dist_files",
"//src/google/protobuf/stubs:dist_files",
"//src/google/protobuf/testing:dist_files",
"//src/google/protobuf/util:dist_files",
"//src/google/protobuf/util/internal:dist_files",
],
visibility = ["//pkg:__pkg__"],
)
2 changes: 2 additions & 0 deletions src/Makefile.am
Expand Up @@ -540,7 +540,9 @@ protoc_inputs = \

EXTRA_DIST = \
$(protoc_inputs) \
BUILD.bazel \
README.md \
google/protobuf/BUILD.bazel \
google/protobuf/compiler/BUILD.bazel \
google/protobuf/compiler/cpp/BUILD.bazel \
google/protobuf/compiler/csharp/BUILD.bazel \
Expand Down

0 comments on commit 171a6b1

Please sign in to comment.