Add source distribution packaging rules (#9835)

This change adds `rules_pkg`-based targets that will produce source distribution archives, similar to `make dist`.

These rules produce nearly the same outputs as `make dist`. However, there are some differences and caveats:

1. The outputs do not contain vendored googletest sources.
2. You have to run `autogen.sh` before `blaze build pkg:all`. This produces several autotools-related files directly into the source tree.
3. The output .zip files do not have a directory prefix like `protobuf-3.20.1-rc-1` (this will be addressed after [Substitute package variables in `pkg_zip#package_dir`. bazelbuild/rules_pkg#577](https://github.com/bazelbuild/rules_pkg/pull/577); the tar files do have this prefix, though.)
4. One file is missing from the archives, which is produced during the `make` build: benchmarks/gogo/cpp_no_group/cpp_benchmark.cc
5. In several places, I have explicitly excluded some files that are not in the autotools distribution outputs. I think most of those files should probably be included, but for now, I'm aiming for parity with `make dist`. These are marked with comments, so it should be easy to clean them up later.
pull/9845/head^2
David L. Jones 3 years ago committed by GitHub
parent 5283ef4b82
commit d76f8c868c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 138
      BUILD
  2. 22
      Makefile.am
  3. 34
      benchmarks/BUILD
  4. 8
      benchmarks/cpp/BUILD
  5. 8
      benchmarks/datasets/BUILD
  6. 8
      benchmarks/datasets/google_message1/proto2/BUILD
  7. 8
      benchmarks/datasets/google_message1/proto3/BUILD
  8. 8
      benchmarks/datasets/google_message2/BUILD
  9. 8
      benchmarks/datasets/google_message3/BUILD
  10. 8
      benchmarks/datasets/google_message4/BUILD
  11. 34
      csharp/BUILD
  12. 32
      examples/BUILD
  13. 37
      java/BUILD
  14. 28
      java/core/BUILD
  15. 14
      java/internal/BUILD
  16. 51
      java/kotlin-lite/BUILD
  17. 76
      java/kotlin/BUILD
  18. 24
      java/lite/BUILD
  19. 18
      java/util/BUILD
  20. 29
      js/BUILD
  21. 48
      objectivec/BUILD
  22. 30
      php/BUILD
  23. 261
      pkg/BUILD
  24. 31
      pkg/README.md
  25. 34
      ruby/BUILD
  26. 2
      third_party/zlib.BUILD
  27. 2
      util/python/BUILD

138
BUILD

@ -2,6 +2,7 @@
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library", native_cc_proto_library = "cc_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
load("@rules_python//python:defs.bzl", "py_library")
load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library")
@ -1445,3 +1446,140 @@ internal_gen_kt_protos(
visibility = ["//java:__subpackages__"],
deps = [":kt_proto3_unittest"],
)
################################################################################
# Packaging rules
################################################################################
# Files included in all source distributions
pkg_files(
name = "common_dist_files",
srcs = glob([
"*.bzl",
"cmake/*.cmake",
"cmake/*.in",
"editors/*",
# Several of these files are generated by autogen.sh, so using
# glob() lets us ignore them if they are missing. (This is not good
# practice, though.)
"Makefile.in",
"aclocal.m4",
"ar-lib",
"compile",
"config*",
"depcomp",
"install-sh",
"ltmain.sh",
"m4/*.m4",
"missing",
"protobuf*.pc.in",
"test-driver",
]) + [
"BUILD",
"CHANGES.txt",
"CMakeLists.txt",
"CONTRIBUTORS.txt",
"LICENSE",
"Makefile.am",
"README.md",
"WORKSPACE",
"autogen.sh",
"build_files_updated_unittest.sh",
"cmake/CMakeLists.txt",
"cmake/README.md",
"generate_descriptor_proto.sh",
"maven_install.json",
"update_file_lists.sh",
"//third_party:zlib.BUILD",
"//util/python:BUILD",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)
# Conformance tests
pkg_files(
name = "conformance_dist_files",
srcs = glob(
["conformance/**/*"],
exclude = [
# The following are not in autotools dist:
"conformance/autoload.php",
"conformance/conformance_nodejs.js",
"conformance/conformance_test_runner.sh",
"conformance/failure_list_java_lite.txt",
"conformance/failure_list_jruby.txt",
"conformance/text_format_failure_list_*.txt",
"conformance/update_failure_list.py",
],
),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)
# C++ runtime
pkg_files(
name = "cpp_dist_files",
srcs = glob(
["src/**/*"],
exclude = [
"src/google/protobuf/compiler/objectivec/method_dump.sh", # not in autotools dist
],
),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)
# Additional files for C#
pkg_files(
name = "csharp_dist_files",
srcs = [
"global.json",
],
visibility = ["//pkg:__pkg__"],
)
# Additional files for ObjC
pkg_files(
name = "objectivec_dist_files",
srcs = [
"Protobuf.podspec",
],
visibility = ["//pkg:__pkg__"],
)
# Additional files for PHP
pkg_files(
name = "php_dist_files",
srcs = [
"composer.json",
],
visibility = ["//pkg:__pkg__"],
)
# Python runtime
pkg_files(
name = "python_dist_files",
srcs = glob([
"python/google/**/*.proto",
"python/google/**/*.py",
"python/google/protobuf/internal/*.cc",
"python/google/protobuf/pyext/*.cc",
"python/google/protobuf/pyext/*.h",
]) + [
"python/MANIFEST.in",
"python/README.md",
"python/google/protobuf/proto_api.h",
"python/google/protobuf/pyext/README",
"python/google/protobuf/python_protobuf.h",
"python/mox.py",
"python/release.sh",
"python/setup.cfg",
"python/setup.py",
"python/stubout.py",
"python/tox.ini",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)

@ -9,6 +9,9 @@ AUTOMAKE_OPTIONS = foreign
SUBDIRS = . src
# Always include third_party directories in distributions.
#
# Note that distribution artifacts will be produced by Bazel in the future.
# See pkg/BUILD for overall definitions.
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
@ -48,6 +51,7 @@ clean-local:
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = protobuf.pc protobuf-lite.pc
# Note: please keep this in sync with the dist_files rule in csharp/BUILD.
csharp_EXTRA_DIST= \
global.json \
csharp/.editorconfig \
@ -279,6 +283,7 @@ csharp_EXTRA_DIST= \
csharp/src/Google.Protobuf/UnknownFieldSet.cs \
csharp/src/Google.Protobuf/UnsafeByteOperations.cs
# Note: please keep this in sync with the dist_files rules under java/.../BUILD.
java_EXTRA_DIST= \
java/README.md \
java/bom/pom.xml \
@ -607,6 +612,7 @@ java_EXTRA_DIST=
java/util/src/test/java/com/google/protobuf/util/ValuesTest.java \
java/util/src/test/proto/com/google/protobuf/util/json_test.proto
# Note: please keep this in sync with the dist_files rule in objectivec/BUILD.
objectivec_EXTRA_DIST= \
objectivec/.clang-format \
objectivec/BUILD \
@ -815,6 +821,7 @@ objectivec_EXTRA_DIST= \
objectivec/Tests/UnitTests-Info.plist \
Protobuf.podspec
# Note: please keep this in sync with the dist_files rule in php/BUILD.
php_EXTRA_DIST= \
php/README.md \
php/REFCOUNTING.md \
@ -838,7 +845,7 @@ php_EXTRA_DIST= \
php/ext/google/protobuf/package.xml \
php/ext/google/protobuf/php-upb.c \
php/ext/google/protobuf/php-upb.h \
php/ext/google/protobuf/php_protobuf.h \
php/ext/google/protobuf/php_protobuf.h \
php/ext/google/protobuf/protobuf.c \
php/ext/google/protobuf/protobuf.h \
php/ext/google/protobuf/wkt.inc \
@ -1011,6 +1018,7 @@ php_EXTRA_DIST= \
php/tests/WellKnownTest.php \
php/tests/WrapperTypeSettersTest.php
# Note: please keep this in sync with the python_dist_files rule in BUILD.
python_EXTRA_DIST= \
python/MANIFEST.in \
python/google/__init__.py \
@ -1134,6 +1142,7 @@ python_EXTRA_DIST= \
python/tox.ini \
python/README.md
# Note: please keep this in sync with the dist_files rule in ruby/BUILD.
ruby_EXTRA_DIST= \
ruby/Gemfile \
ruby/.gitignore \
@ -1209,6 +1218,7 @@ ruby_EXTRA_DIST= \
ruby/tests/type_errors.rb \
ruby/travis-test.sh
# Note: please keep this in sync with the dist_files rule in js/BUILD.
js_EXTRA_DIST= \
js/README.md \
js/binary/arith.js \
@ -1392,6 +1402,7 @@ js_EXTRA_DIST= \
all_EXTRA_DIST=$(csharp_EXTRA_DIST) $(java_EXTRA_DIST) $(objectivec_EXTRA_DIST) $(php_EXTRA_DIST) $(python_EXTRA_DIST) $(ruby_EXTRA_DIST) $(js_EXTRA_DIST)
# Note: please keep this in sync with the common_dist_files rule in BUILD.
EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
autogen.sh \
generate_descriptor_proto.sh \
@ -1425,6 +1436,7 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
compiler_config_setting.bzl \
build_files_updated_unittest.sh \
cc_proto_blacklist_test.bzl \
csharp/BUILD \
editors/README.txt \
editors/proto.vim \
editors/protobuf-mode.el \
@ -1449,15 +1461,17 @@ EXTRA_DIST = $(@DIST_LANG@_EXTRA_DIST) \
examples/list_people.dart \
examples/list_people.py \
examples/pubspec.yaml \
internal.bzl \
js/BUILD \
maven_install.json \
php/BUILD \
protobuf.bzl \
protobuf_deps.bzl \
protobuf_release.bzl \
protobuf_version.bzl \
ruby/BUILD \
third_party/zlib.BUILD \
util/python/BUILD \
internal.bzl
util/python/BUILD
# Deletes all the files generated by autogen.sh.
MAINTAINERCLEANFILES = \

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
proto_library(
@ -63,3 +64,36 @@ java_proto_library(
"google_size_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(
[
"*",
"python/*.cc",
"util/*.cc",
],
exclude = [
"__init__.py", # not in autotools dist
"BUILD",
"go/*",
],
),
strip_prefix = strip_prefix.from_root(""),
)
# Convenience filegroup for all files that should be packaged.
pkg_filegroup(
name = "all_dist_files",
srcs = [
":dist_files",
"//benchmarks/cpp:dist_files",
# "//benchmarks/datasets:dist_files", # not in autotools dist
"//benchmarks/datasets/google_message1/proto2:dist_files",
"//benchmarks/datasets/google_message1/proto3:dist_files",
"//benchmarks/datasets/google_message2:dist_files",
"//benchmarks/datasets/google_message3:dist_files",
"//benchmarks/datasets/google_message4:dist_files",
],
visibility = ["//pkg:__pkg__"],
)

@ -1,4 +1,5 @@
load("@rules_cc//cc:defs.bzl", "cc_binary")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
cc_binary(
name = "cpp",
@ -13,3 +14,10 @@ cc_binary(
"@com_github_google_benchmark//:benchmark_main",
],
)
pkg_files(
name = "dist_files",
srcs = ["cpp_benchmark.cc"],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
load("@rules_java//java:defs.bzl", "java_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
@ -57,3 +58,10 @@ java_library(
"//benchmarks/datasets/google_message4:benchmark_message4_java_proto",
],
)
pkg_files(
name = "dist_files",
srcs = ["BUILD"],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
@ -42,3 +43,10 @@ java_proto_library(
"benchmark_message1_proto2_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(["*.proto"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,6 +1,7 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
filegroup(
name = "datasets",
@ -42,3 +43,10 @@ java_proto_library(
"benchmark_message1_proto3_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(["*.proto"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
@ -42,3 +43,10 @@ java_proto_library(
"benchmark_message2_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(["*.proto"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
@ -48,3 +49,10 @@ java_proto_library(
"benchmark_message3_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(["*.proto"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_cc//cc:defs.bzl", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
filegroup(
@ -43,3 +44,10 @@ java_proto_library(
"benchmark_message4_proto",
],
)
pkg_files(
name = "dist_files",
srcs = glob(["*.proto"]),
strip_prefix = strip_prefix.from_root(""),
visibility = ["//benchmarks:__pkg__"],
)

@ -0,0 +1,34 @@
# Protobuf C# runtime
#
# See also code generation logic under /src/google/protobuf/compiler/csharp.
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
pkg_files(
name = "dist_files",
srcs = glob([
"keys/*",
"protos/*",
"src/**/*.cs*", # .cs and .csproj
]) + [
".editorconfig",
".gitignore",
"BUILD",
"CHANGES.txt",
"Google.Protobuf.Tools.nuspec",
"Google.Protobuf.Tools.targets",
"NuGet.Config",
"README.md",
"build_packages.bat",
"build_tools.sh",
"buildall.bat",
"buildall.sh",
"generate_protos.sh",
"install_dotnet_sdk.ps1",
"src/Google.Protobuf.Benchmarks/wrapper_benchmark_messages.proto",
"src/Google.Protobuf.Test/testprotos.pb",
"src/Google.Protobuf.sln",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)

@ -6,6 +6,7 @@
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_proto_library")
load("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
# For each .proto file, a proto_library target should be defined. This target
@ -103,3 +104,34 @@ java_binary(
main_class = "ListPeople",
deps = [":addressbook_java_lite_proto"],
)
# Files included in all source distributions
pkg_files(
name = "dist_files",
srcs = [
"AddPerson.java",
"BUILD",
"CMakeLists.txt",
"ListPeople.java",
"Makefile",
"README.md",
"WORKSPACE",
"add_person.cc",
"add_person.dart",
"add_person.py",
"addressbook.proto",
"go/cmd/add_person/add_person.go",
"go/cmd/add_person/add_person_test.go",
"go/cmd/list_people/list_people.go",
"go/cmd/list_people/list_people_test.go",
"go/go.mod",
"go/go.sum",
"list_people.cc",
"list_people.dart",
"list_people.py",
"pubspec.yaml",
],
prefix = "examples/",
strip_prefix = strip_prefix.from_root(""),
visibility = ["//visibility:public"],
)

@ -1,3 +1,5 @@
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
test_suite(
name = "tests",
tests = [
@ -12,9 +14,40 @@ test_suite(
filegroup(
name = "release",
srcs = [
"//java/core:release", # contains lite.
"//java/core:release", # contains lite.
"//java/kotlin:release",
"//java/kotlin-lite:release",
"//java/util:release",
]
],
)
################################################################################
# Packaging rules
################################################################################
pkg_files(
name = "dist_files",
srcs = [
"BUILD",
"README.md",
"bom/pom.xml",
"lite.md",
"pom.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)
pkg_filegroup(
name = "all_dist_files",
srcs = [
":dist_files",
"//java/core:dist_files",
"//java/internal:dist_files",
"//java/kotlin:dist_files",
"//java/kotlin-lite:dist_files",
"//java/lite:dist_files",
"//java/util:dist_files",
],
visibility = ["//pkg:__pkg__"],
)

@ -1,6 +1,7 @@
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_java//java:defs.bzl", "java_library", "java_lite_proto_library", "java_proto_library")
load("@rules_jvm_external//:defs.bzl", "java_export")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
load("//:internal.bzl", "conformance_test")
load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
@ -175,9 +176,6 @@ filegroup(
proto_lang_toolchain(
name = "toolchain",
command_line = "--java_out=$(OUT)",
runtime = ":core",
visibility = ["//visibility:public"],
# keep this in sync w/ WELL_KNOWN_PROTO_MAP in //:BUILD
blacklisted_protos = [
"//:any_proto",
@ -193,6 +191,9 @@ proto_lang_toolchain(
"//:type_proto",
"//:wrappers_proto",
],
command_line = "--java_out=$(OUT)",
runtime = ":core",
visibility = ["//visibility:public"],
)
proto_library(
@ -226,6 +227,7 @@ java_library(
"src/test/java/com/google/protobuf/TestUtil.java",
"src/test/java/com/google/protobuf/TestUtilLite.java",
],
visibility = ["//java:__subpackages__"],
deps = [
":core",
":generic_test_protos_java_proto",
@ -233,7 +235,6 @@ java_library(
"@maven//:com_google_guava_guava",
"@maven//:junit_junit",
],
visibility = ["//java:__subpackages__"],
)
test_suite(
@ -336,8 +337,8 @@ java_library(
":rewrite_javalite_test_util",
],
visibility = [
"//java/lite:__pkg__",
"//java/kotlin-lite:__pkg__",
"//java/lite:__pkg__",
],
deps = [
":generic_test_protos_java_proto_lite",
@ -411,3 +412,20 @@ junit_tests(
"@maven//:org_mockito_mockito_core",
],
)
pkg_files(
name = "dist_files",
srcs = glob([
"src/main/java/com/google/protobuf/*.java",
"src/test/java/**/*.java",
"src/test/proto/**/*.proto",
]) + [
"BUILD",
"generate-sources-build.xml",
"generate-test-sources-build.xml",
"pom.xml",
"pom_template.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -1 +1,13 @@
package(default_visibility = ["//java:__subpackages__"])
package(default_visibility = ["//java:__subpackages__"])
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
pkg_files(
name = "dist_files",
srcs = [
"BUILD",
"testing.bzl",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -1,6 +1,7 @@
load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
load("@rules_java//java:defs.bzl", "java_lite_proto_library")
load("@rules_jvm_external//:kt_defs.bzl", "kt_jvm_export")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
load("//:protobuf.bzl", "internal_gen_kt_protos")
@ -21,14 +22,18 @@ kt_jvm_library(
"//:gen_well_known_protos_kotlinlite",
],
deps = [
"//java/lite",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
],
)
kt_jvm_export(
name = "kotlin-lite_mvn",
deploy_env = [
"@com_github_jetbrains_kotlin//:kotlin-stdlib",
"//java/lite",
],
maven_coordinates = "com.google.protobuf:protobuf-kotlin-lite:%s" % PROTOBUF_VERSION,
pom_template = "//java/kotlin-lite:pom_template.xml",
resources = ["//:well_known_protos"],
@ -39,10 +44,6 @@ kt_jvm_export(
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
],
deploy_env = [
"@com_github_jetbrains_kotlin//:kotlin-stdlib",
"//java/lite",
],
)
filegroup(
@ -59,9 +60,9 @@ filegroup(
test_suite(
name = "tests",
tests = [
"test_lite_extensions",
"proto2_test_lite",
"proto3_test_lite",
"test_lite_extensions",
],
)
@ -71,9 +72,9 @@ kt_jvm_library(
deps = [
":example_extensible_message_java_proto_lite",
":lite_extensions",
"//java/lite",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//java/lite",
"@com_github_jetbrains_kotlin//:kotlin-test",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
@ -82,8 +83,8 @@ kt_jvm_library(
java_test(
name = "test_lite_extensions",
runtime_deps = [":test_lite_extensions_library"],
test_class = "com.google.protobuf.kotlin.ExtendableMessageLiteExtensionsTest",
runtime_deps = [":test_lite_extensions_library"],
)
java_lite_proto_library(
@ -93,8 +94,8 @@ java_lite_proto_library(
internal_gen_kt_protos(
name = "gen_evil_names_proto2_lite",
deps = ["//java/kotlin:evil_names_proto2"],
lite = True,
deps = ["//java/kotlin:evil_names_proto2"],
)
java_lite_proto_library(
@ -104,8 +105,8 @@ java_lite_proto_library(
internal_gen_kt_protos(
name = "gen_evil_names_proto3_lite",
deps = ["//java/kotlin:evil_names_proto3"],
lite = True,
deps = ["//java/kotlin:evil_names_proto3"],
)
java_lite_proto_library(
@ -126,10 +127,10 @@ kt_jvm_library(
],
deps = [
":evil_names_proto2_java_proto_lite",
"//java/lite:lite",
"//:java_lite_test_protos",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//:java_lite_test_protos",
"//java/lite",
],
)
@ -143,10 +144,10 @@ kt_jvm_library(
deps = [
":evil_names_proto3_java_proto_lite",
":multiple_files_proto3_java_proto_lite",
"//java/lite:lite",
"//:java_lite_test_protos",
"//java/kotlin:only_for_use_in_proto_generated_code_its_generator_and_tests",
"//java/kotlin:shared_runtime",
"//:java_lite_test_protos",
"//java/lite",
],
)
@ -163,8 +164,8 @@ kt_jvm_library(
java_test(
name = "proto2_test_lite",
runtime_deps = [":proto2_test_lite_library"],
test_class = "com.google.protobuf.kotlin.Proto2LiteTest",
runtime_deps = [":proto2_test_lite_library"],
)
kt_jvm_library(
@ -180,6 +181,24 @@ kt_jvm_library(
java_test(
name = "proto3_test_lite",
runtime_deps = [":proto3_test_lite_library"],
test_class = "com.google.protobuf.kotlin.Proto3Test",
runtime_deps = [":proto3_test_lite_library"],
)
pkg_files(
name = "dist_files",
srcs = glob([
"src/main/kotlin/com/google/protobuf/*.kt",
"src/test/kotlin/**/*.kt",
]) + [
"BUILD",
"generate-sources-build.xml",
"generate-test-sources-build.xml",
"lite.awk",
"pom.xml",
"pom_template.xml",
"process-lite-sources-build.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -1,12 +1,13 @@
load("@io_bazel_rules_kotlin//kotlin:jvm.bzl", "kt_jvm_library")
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_jvm_external//:kt_defs.bzl", "kt_jvm_export")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
load("//:protobuf.bzl", "internal_gen_kt_protos")
exports_files([
"src/test/kotlin/com/google/protobuf/Proto3Test.kt",
"src/test/kotlin/com/google/protobuf/Proto3Test.kt",
])
# Kotlin generated protos depend on this and only this.
@ -36,34 +37,34 @@ kt_jvm_library(
kt_jvm_library(
name = "bytestring_lib",
srcs = ["src/main/kotlin/com/google/protobuf/ByteStrings.kt"],
deps = ["//java/lite"],
visibility = ["//java:__subpackages__"],
deps = ["//java/lite"],
)
kt_jvm_library(
name = "full_extensions",
srcs = [
"src/main/kotlin/com/google/protobuf/Anies.kt",
"src/main/kotlin/com/google/protobuf/ExtendableMessageExtensions.kt",
"src/main/kotlin/com/google/protobuf/Anies.kt",
"src/main/kotlin/com/google/protobuf/ExtendableMessageExtensions.kt",
],
deps = ["//java/core"],
)
kt_jvm_export(
name = "kotlin_mvn",
deploy_env = [
"@com_github_jetbrains_kotlin//:kotlin-stdlib",
"//java/core",
],
maven_coordinates = "com.google.protobuf:protobuf-kotlin:%s" % PROTOBUF_VERSION,
pom_template = "//java/kotlin:pom_template.xml",
resources = ["//:well_known_protos"],
runtime_deps = [
":bytestring_lib",
":full_extensions",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
":well_known_protos_kotlin",
],
deploy_env = [
"@com_github_jetbrains_kotlin//:kotlin-stdlib",
"//java/core",
":bytestring_lib",
":full_extensions",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
":well_known_protos_kotlin",
],
)
@ -82,10 +83,10 @@ test_suite(
name = "tests",
tests = [
"bytestring_test",
"shared_tests",
"test_extensions",
"proto2_test",
"proto3_test",
"shared_tests",
"test_extensions",
],
)
@ -103,8 +104,8 @@ kt_jvm_library(
java_test(
name = "bytestring_test",
runtime_deps = [":bytestring_test_library"],
test_class = "com.google.protobuf.kotlin.ByteStringsTest",
runtime_deps = [":bytestring_test_library"],
)
proto_library(
@ -131,31 +132,31 @@ kt_jvm_library(
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
"@com_github_jetbrains_kotlin//:kotlin-test",
"@maven//:com_google_truth_truth",
"@maven//:com_google_guava_guava_testlib",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
],
)
java_test(
name = "shared_tests",
runtime_deps = [":shared_tests_library"],
test_class = "com.google.protobuf.kotlin.DslListTest",
runtime_deps = [":shared_tests_library"],
)
kt_jvm_library(
name = "test_extensions_library",
srcs = [
"src/test/kotlin/com/google/protobuf/AniesTest.kt",
"src/test/kotlin/com/google/protobuf/ExtendableMessageExtensionsTest.kt",
"src/test/kotlin/com/google/protobuf/AniesTest.kt",
"src/test/kotlin/com/google/protobuf/ExtendableMessageExtensionsTest.kt",
],
deps = [
":example_extensible_message_java_proto",
":full_extensions",
"//java/core:core",
":kotlin_unittest",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
"//java/core",
"@com_github_jetbrains_kotlin//:kotlin-test",
"@maven//:com_google_truth_truth",
"@maven//:junit_junit",
@ -164,8 +165,8 @@ kt_jvm_library(
java_test(
name = "test_extensions",
runtime_deps = [":test_extensions_library"],
test_class = "com.google.protobuf.kotlin.ExtendableMessageExtensionsTest",
runtime_deps = [":test_extensions_library"],
)
proto_library(
@ -224,11 +225,11 @@ kt_jvm_library(
],
deps = [
":evil_names_proto2_java_proto",
"//java/core:core",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
":well_known_protos_kotlin",
"//:java_test_protos",
"//java/core",
],
)
@ -242,10 +243,10 @@ kt_jvm_library(
deps = [
":evil_names_proto3_java_proto",
":multiple_files_proto3_java_proto",
"//java/core:core",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
"//:java_test_protos",
"//java/core",
],
)
@ -262,8 +263,8 @@ kt_jvm_library(
java_test(
name = "proto2_test",
runtime_deps = [":proto2_test_library"],
test_class = "com.google.protobuf.kotlin.Proto2Test",
runtime_deps = [":proto2_test_library"],
)
kt_jvm_library(
@ -279,8 +280,8 @@ kt_jvm_library(
java_test(
name = "proto3_test",
runtime_deps = [":proto3_test_library"],
test_class = "com.google.protobuf.kotlin.Proto3Test",
runtime_deps = [":proto3_test_library"],
)
kt_jvm_library(
@ -289,8 +290,25 @@ kt_jvm_library(
"//:gen_well_known_protos_kotlin",
],
deps = [
"//java/core",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
":only_for_use_in_proto_generated_code_its_generator_and_tests",
":shared_runtime",
"//java/core",
],
)
pkg_files(
name = "dist_files",
srcs = glob([
"src/main/kotlin/com/google/protobuf/*.kt",
"src/test/kotlin/**/*.kt",
"src/test/proto/**/*.proto",
]) + [
"BUILD",
"generate-sources-build.xml",
"generate-test-sources-build.xml",
"pom.xml",
"pom_template.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -1,4 +1,5 @@
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain")
load("//:internal.bzl", "conformance_test")
load("//java/internal:testing.bzl", "junit_tests")
@ -21,9 +22,6 @@ alias(
proto_lang_toolchain(
name = "toolchain",
command_line = "--java_out=lite:$(OUT)",
runtime = ":lite",
visibility = ["//visibility:public"],
# keep this in sync w/ LITE_WELL_KNOWN_PROTO_MAP in //:BUILD
blacklisted_protos = [
"//:any_proto",
@ -37,6 +35,9 @@ proto_lang_toolchain(
"//:type_proto",
"//:wrappers_proto",
],
command_line = "--java_out=lite:$(OUT)",
runtime = ":lite",
visibility = ["//visibility:public"],
)
test_suite(
@ -76,3 +77,20 @@ junit_tests(
"@maven//:junit_junit",
],
)
pkg_files(
name = "dist_files",
srcs = glob([
"**/*.java",
]) + [
"BUILD",
"generate-sources-build.xml",
"generate-test-sources-build.xml",
"lite.awk",
"pom.xml",
"pom_template.xml",
"process-lite-sources-build.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -1,5 +1,6 @@
load("@rules_java//java:defs.bzl", "java_proto_library")
load("@rules_jvm_external//:defs.bzl", "java_export")
load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_library")
load("//:protobuf_version.bzl", "PROTOBUF_VERSION")
load("//java/internal:testing.bzl", "junit_tests")
@ -23,11 +24,11 @@ java_library(
# Bazel users, don't depend on this target, use :util.
java_export(
name = "util_mvn",
deploy_env = ["//java/core"],
maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_VERSION,
pom_template = "pom_template.xml",
visibility = ["//java:__pkg__"],
runtime_deps = [":util"],
deploy_env = ["//java/core"],
)
filegroup(
@ -74,3 +75,18 @@ junit_tests(
"@maven//:junit_junit",
],
)
pkg_files(
name = "dist_files",
srcs = glob([
"src/main/**/*.java",
"src/test/**/*.java",
"src/test/**/*.proto",
]) + [
"BUILD",
"pom.xml",
"pom_template.xml",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//java:__pkg__"],
)

@ -0,0 +1,29 @@
# Protobuf JS runtime
#
# See also code generation logic under /src/google/protobuf/compiler/js.
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
pkg_files(
name = "dist_files",
srcs = glob([
"*.js",
"*.json",
"*.proto",
"binary/*.js",
"commonjs/*.js*", # js, json
"commonjs/**/*.proto",
"compatibility_tests/v3.0.0/**/*.js*",
"compatibility_tests/v3.0.0/**/*.proto",
"compatibility_tests/v3.0.0/**/*.sh",
"compatibility_tests/v3.1.0/**/*.js*",
"compatibility_tests/v3.1.0/**/*.proto",
"experimental/benchmarks/**/*.js",
"experimental/runtime/**/*.js",
]) + [
"BUILD",
"README.md",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)

@ -1,4 +1,5 @@
load("@rules_cc//cc:defs.bzl", "objc_library")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
objc_library(
name = "objectivec",
@ -63,28 +64,59 @@ objc_library(
non_arc_srcs = [
"GPBAny.pbobjc.m",
"GPBApi.pbobjc.m",
"GPBDuration.pbobjc.m",
"GPBEmpty.pbobjc.m",
"GPBFieldMask.pbobjc.m",
"GPBSourceContext.pbobjc.m",
"GPBStruct.pbobjc.m",
"GPBTimestamp.pbobjc.m",
"GPBType.pbobjc.m",
"GPBWrappers.pbobjc.m",
"GPBArray.m",
"GPBCodedInputStream.m",
"GPBCodedOutputStream.m",
"GPBDescriptor.m",
"GPBDictionary.m",
"GPBDuration.pbobjc.m",
"GPBEmpty.pbobjc.m",
"GPBExtensionInternals.m",
"GPBExtensionRegistry.m",
"GPBFieldMask.pbobjc.m",
"GPBMessage.m",
"GPBRootObject.m",
"GPBSourceContext.pbobjc.m",
"GPBStruct.pbobjc.m",
"GPBTimestamp.pbobjc.m",
"GPBType.pbobjc.m",
"GPBUnknownField.m",
"GPBUnknownFieldSet.m",
"GPBUtilities.m",
"GPBWellKnownTypes.m",
"GPBWireFormat.m",
"GPBWrappers.pbobjc.m",
],
visibility = ["//visibility:public"],
)
pkg_files(
name = "dist_files",
srcs = glob([
"*.h",
"*.m",
"**/*.h",
"**/*.m",
"**/*.mm",
"**/*.swift",
"DevTools/*.sh",
"DevTools/*.py",
"ProtocolBuffers_iOS.xcodeproj/**/*",
"ProtocolBuffers_OSX.xcodeproj/**/*",
"ProtocolBuffers_tvOS.xcodeproj/**/*",
"Tests/CocoaPods/**/*",
"Tests/*.pddm",
"Tests/*.txt",
"Tests/*.plist",
"Tests/*.proto",
]) + [
".clang-format",
"BUILD",
"README.md",
"Tests/golden_message",
"Tests/golden_packed_fields_message",
"generate_well_known_types.sh",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)

@ -0,0 +1,30 @@
# Protobuf PHP runtime
#
# See also code generation logic under /src/google/protobuf/compiler/php.
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
pkg_files(
name = "dist_files",
srcs = glob([
"ext/google/protobuf/**/*",
"src/GPBMetadata/Google/Protobuf/**/*.php",
"src/Google/Protobuf/**/*.php",
"tests/*.php",
"tests/*.sh",
"tests/proto/**/*.proto",
]) + [
"BUILD",
"README.md",
"REFCOUNTING.md",
"composer.json",
"generate_descriptor_protos.sh",
"generate_test_protos.sh",
"release.sh",
"src/phpdoc.dist.xml",
"tests/valgrind.supp",
],
prefix = "php",
strip_prefix = strip_prefix.from_pkg(""),
visibility = ["//pkg:__pkg__"],
)

@ -1,8 +1,17 @@
load("@rules_pkg//:pkg.bzl", "pkg_zip")
load("@rules_pkg//:mappings.bzl", "pkg_attributes", "pkg_files")
load("@rules_pkg//:pkg.bzl", "pkg_tar", "pkg_zip")
load(
"@rules_pkg//:mappings.bzl",
"pkg_attributes",
"pkg_filegroup",
"pkg_files",
)
load("//:protobuf_release.bzl", "package_naming")
load(":cc_dist_library.bzl", "cc_dist_library")
package_naming(
name = "protobuf_pkg_naming",
)
pkg_files(
name = "wkt_protos_files",
srcs = [
@ -69,10 +78,6 @@ pkg_files(
visibility = ["//visibility:private"],
)
package_naming(
name = "protoc_pkg_naming",
)
pkg_zip(
name = "protoc_release",
srcs = [
@ -83,7 +88,249 @@ pkg_zip(
":wkt_protos_files",
],
package_file_name = "protoc-{version}-{platform}.zip",
package_variables = ":protoc_pkg_naming",
package_variables = ":protobuf_pkg_naming",
)
################################################################################
# Source distribution packaging
#
# TODO: these will eventually replace autotools for release artifact packaging.
################################################################################
pkg_filegroup(
name = "dist_common",
srcs = [
"//:common_dist_files",
"//:conformance_dist_files",
"//:cpp_dist_files", # to build protoc
"//benchmarks:all_dist_files",
"@com_google_protobuf_examples//:dist_files",
],
)
pkg_filegroup(
name = "cpp_srcs",
srcs = [
":dist_common",
"//:cpp_dist_files",
],
)
pkg_tar(
name = "dist_cpp_tar",
srcs = [":cpp_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-cpp-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_cpp_zip",
srcs = [":cpp_srcs"],
package_file_name = "protobuf-cpp-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "csharp_srcs",
srcs = [
":dist_common",
"//:csharp_dist_files",
"//csharp:dist_files",
],
)
pkg_tar(
name = "dist_csharp_tar",
srcs = [":csharp_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-csharp-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_csharp_zip",
srcs = [":csharp_srcs"],
package_file_name = "protobuf-csharp-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "java_srcs",
srcs = [
":dist_common",
"//java:all_dist_files",
],
)
pkg_tar(
name = "dist_java_tar",
srcs = [":java_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-java-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_java_zip",
srcs = [":java_srcs"],
package_file_name = "protobuf-java-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "js_srcs",
srcs = [
":dist_common",
"//js:dist_files",
],
)
pkg_tar(
name = "dist_js_tar",
srcs = [":js_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-js-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_js_zip",
srcs = [":js_srcs"],
package_file_name = "protobuf-js-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "objectivec_srcs",
srcs = [
":dist_common",
"//:objectivec_dist_files",
"//objectivec:dist_files",
],
)
pkg_tar(
name = "dist_objectivec_tar",
srcs = [":objectivec_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-objectivec-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_objectivec_zip",
srcs = [":objectivec_srcs"],
package_file_name = "protobuf-objectivec-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "php_srcs",
srcs = [
":dist_common",
"//:php_dist_files",
"//php:dist_files",
],
)
pkg_tar(
name = "dist_php_tar",
srcs = [":php_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-php-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_php_zip",
srcs = [":php_srcs"],
package_file_name = "protobuf-php-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "python_srcs",
srcs = [
":dist_common",
"//:python_dist_files",
],
)
pkg_tar(
name = "dist_python_tar",
srcs = [":python_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-python-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_python_zip",
srcs = [":python_srcs"],
package_file_name = "protobuf-python-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "ruby_srcs",
srcs = [
":dist_common",
"//ruby:dist_files",
],
)
pkg_tar(
name = "dist_ruby_tar",
srcs = [":ruby_srcs"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-ruby-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_ruby_zip",
srcs = [":ruby_srcs"],
package_file_name = "protobuf-ruby-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
pkg_filegroup(
name = "dist_all",
srcs = [
":cpp_srcs",
":csharp_srcs",
":java_srcs",
":js_srcs",
":objectivec_srcs",
":php_srcs",
":python_srcs",
":ruby_srcs",
],
)
pkg_tar(
name = "dist_all_tar",
srcs = [":dist_all"],
extension = "tar.gz",
package_dir = "protobuf-{version}",
package_file_name = "protobuf-all-{version}.tar.gz",
package_variables = ":protobuf_pkg_naming",
)
pkg_zip(
name = "dist_all_zip",
srcs = [":dist_all"],
package_file_name = "protobuf-all-{version}.zip",
package_variables = ":protobuf_pkg_naming",
)
################################################################################

@ -0,0 +1,31 @@
# Protobuf packaging
This directory contains Bazel rules for building packaging and distribution
artifacts.
*Everything in this directory should be considered internal and subject to
change.*
## Protocol compiler binary packaging
The protocol compiler is used in binary form in various places. There are rules
which package it, along with commonly used `.proto` files, for distribution.
## Source distribution packaging
Protobuf releases include source distributions, sliced by target language (C++,
Java, etc.). There are rules in this package to define those source archives.
These depend upon `pkg_files` rules elsewhere in the repo to get the contents.
The source distribution files should include the outputs from `autogen.sh`, but
this isn't something we can reliably do from Bazel. To produce fully functioning
source distributions, run `autogen.sh` before building the archives (this
populates the necessary files directly into the source tree).
## C++ runtime binary distribution
The `cc_dist_library` rule creates composite libraries from several other
`cc_library` targets. Bazel uses a "fine-grained" library model, where each
`cc_library` produces its own library artifacts, without transitive
dependencies. The `cc_dist_library` rule combines several other libraries
together, creating a single library that may be suitable for distribution.

@ -0,0 +1,34 @@
# Protobuf Ruby runtime
#
# See also code generation logic under /src/google/protobuf/compiler/ruby.
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
pkg_files(
name = "dist_files",
srcs = glob([
"compatibility_tests/v3.0.0/**/*",
"ext/google/protobuf_c/*",
"src/main/java/com/google/protobuf/jruby/*.java",
"tests/*.proto",
"tests/*.rb",
]) + [
".gitignore",
"BUILD",
"Gemfile",
"README.md",
"Rakefile",
"google-protobuf.gemspec",
"lib/google/protobuf.rb",
"lib/google/protobuf/descriptor_dsl.rb",
"lib/google/protobuf/message_exts.rb",
"lib/google/protobuf/repeated_field.rb",
"lib/google/protobuf/well_known_types.rb",
"pom.xml",
"src/main/java/google/ProtobufJavaService.java",
"src/main/sentinel.proto",
"travis-test.sh",
],
strip_prefix = strip_prefix.from_root(""),
visibility = ["//pkg:__pkg__"],
)

@ -2,6 +2,8 @@ load("@rules_cc//cc:defs.bzl", "cc_library")
licenses(["notice"]) # BSD/MIT-like license (for zlib)
exports_files(["zlib.BUILD"])
_ZLIB_HEADERS = [
"crc32.h",
"deflate.h",

@ -1,5 +1,7 @@
load("@rules_cc//cc:defs.bzl", "cc_library")
exports_files(["BUILD"])
# This is a placeholder for python headers. Projects needing to use
# fast cpp protos in protobuf's python interface should build with
# --define=use_fast_cpp_protos=true, and in addition, provide

Loading…
Cancel
Save