Ver Fonte

Merge pull request #6544 from Yannic/buildifier_javalite

[javalite] Fix bzl and BUILD files by running buildifier
Rafi Kamal há 6 anos atrás
pai
commit
7b64714af6
7 ficheiros alterados com 395 adições e 391 exclusões
  1. 2 0
      .gitignore
  2. 19 11
      BUILD
  3. 28 5
      WORKSPACE
  4. 0 28
      gmock.BUILD
  5. 344 334
      protobuf.bzl
  6. 0 13
      six.BUILD
  7. 2 0
      util/python/BUILD

+ 2 - 0
.gitignore

@@ -114,3 +114,5 @@ conformance/google/
 conformance/javac_middleman
 conformance/lite/
 conformance/protoc_middleman
+
+bazel-*

+ 19 - 11
BUILD

@@ -1,5 +1,10 @@
 # Bazel (http://bazel.io/) BUILD file for Protobuf.
 
+load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library")
+load("@rules_java//java:defs.bzl", "java_library")
+load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain")
+load("@rules_python//python:defs.bzl", "py_library")
+
 licenses(["notice"])
 
 exports_files(["LICENSE"])
@@ -27,16 +32,19 @@ config_setting(
 # Android builds do not need to link in a separate pthread library.
 LINK_OPTS = select({
     ":android": [],
-    "//conditions:default": ["-lpthread", "-lm"],
+    "//conditions:default": [
+        "-lpthread",
+        "-lm",
+    ],
 })
 
 load(
     ":protobuf.bzl",
     "cc_proto_library",
-    "py_proto_library",
     "internal_copied_filegroup",
     "internal_gen_well_known_protos_java",
     "internal_protobuf_py_tests",
+    "py_proto_library",
 )
 
 config_setting(
@@ -100,9 +108,9 @@ cc_library(
     ],
     hdrs = glob(["src/google/protobuf/**/*.h"]),
     copts = select({
+        ":ios_arm64": IOS_ARM_COPTS,
         ":ios_armv7": IOS_ARM_COPTS,
         ":ios_armv7s": IOS_ARM_COPTS,
-        ":ios_arm64": IOS_ARM_COPTS,
         "//conditions:default": COPTS,
     }),
     includes = ["src/"],
@@ -170,9 +178,9 @@ cc_library(
     ],
     hdrs = glob(["src/**/*.h"]),
     copts = select({
+        ":ios_arm64": IOS_ARM_COPTS,
         ":ios_armv7": IOS_ARM_COPTS,
         ":ios_armv7s": IOS_ARM_COPTS,
-        ":ios_arm64": IOS_ARM_COPTS,
         "//conditions:default": COPTS,
     }),
     includes = ["src/"],
@@ -543,8 +551,8 @@ java_library(
     name = "protobuf_java_lite",
     srcs = [
         "java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java",
-        "java/core/src/main/java/com/google/protobuf/AbstractProtobufList.java",
         "java/core/src/main/java/com/google/protobuf/AbstractParser.java",
+        "java/core/src/main/java/com/google/protobuf/AbstractProtobufList.java",
         "java/core/src/main/java/com/google/protobuf/BooleanArrayList.java",
         "java/core/src/main/java/com/google/protobuf/ByteBufferWriter.java",
         "java/core/src/main/java/com/google/protobuf/ByteOutput.java",
@@ -582,8 +590,8 @@ java_library(
         "java/core/src/main/java/com/google/protobuf/TextFormatEscaper.java",
         "java/core/src/main/java/com/google/protobuf/UninitializedMessageException.java",
         "java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
-        "java/core/src/main/java/com/google/protobuf/UnsafeUtil.java",
         "java/core/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
+        "java/core/src/main/java/com/google/protobuf/UnsafeUtil.java",
         "java/core/src/main/java/com/google/protobuf/Utf8.java",
         "java/core/src/main/java/com/google/protobuf/WireFormat.java",
     ],
@@ -632,8 +640,8 @@ java_library(
         "java/core/src/main/java/com/google/protobuf/UnsafeByteOperations.java",
         ":gen_well_known_protos_java",
     ],
-    deps = [":protobuf_java_lite"],
     visibility = ["//visibility:public"],
+    deps = [":protobuf_java_lite"],
 )
 
 java_library(
@@ -680,8 +688,8 @@ cc_binary(
     linkshared = 1,
     linkstatic = 1,
     deps = select({
-        "//conditions:default": [],
         ":use_fast_cpp_protos": ["//external:python_headers"],
+        "//conditions:default": [],
     }),
 )
 
@@ -694,8 +702,8 @@ cc_binary(
     copts = COPTS + [
         "-DGOOGLE_PROTOBUF_HAS_ONEOF=1",
     ] + select({
-        "//conditions:default": [],
         ":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"],
+        "//conditions:default": [],
     }),
     includes = [
         "python/",
@@ -706,8 +714,8 @@ cc_binary(
     deps = [
         ":protobuf",
     ] + select({
-        "//conditions:default": [],
         ":use_fast_cpp_protos": ["//external:python_headers"],
+        "//conditions:default": [],
     }),
 )
 
@@ -746,11 +754,11 @@ py_proto_library(
     srcs = COPIED_WELL_KNOWN_PROTOS,
     include = "python",
     data = select({
-        "//conditions:default": [],
         ":use_fast_cpp_protos": [
             ":python/google/protobuf/internal/_api_implementation.so",
             ":python/google/protobuf/pyext/_message.so",
         ],
+        "//conditions:default": [],
     }),
     default_runtime = "",
     protoc = ":protoc",

+ 28 - 5
WORKSPACE

@@ -1,19 +1,42 @@
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
-new_git_repository(
+# We're pinning to a commit because this project does not have a recent release.
+# Nothing special about this commit, though.
+http_archive(
+    # TODO(yannic): This should be named `com_google_googletest`.
+    # https://github.com/google/googletest/blob/c9ccac7cb7345901884aabf5d1a786cfa6e2f397/WORKSPACE#L1
     name = "googletest",
-    build_file = "gmock.BUILD",
-    remote = "https://github.com/google/googletest",
-    tag = "release-1.8.0",
+    sha256 = "eb46ff71810090f76d5ff69c27b64ddc5d3ad93d6665df7dbe9712401d13887e",
+    strip_prefix = "googletest-d5e9e0c38f85363e90b0a3e95a9484fe896d38e5",
+    urls = [
+        "https://mirror.bazel.build/github.com/google/googletest/archive/d5e9e0c38f85363e90b0a3e95a9484fe896d38e5.tar.gz",
+        "https://github.com/google/googletest/archive/d5e9e0c38f85363e90b0a3e95a9484fe896d38e5.tar.gz",
+    ],
 )
 
 http_archive(
     name = "six_archive",
     build_file = "@//:six.BUILD",
     sha256 = "105f8d68616f8248e24bf0e9372ef04d3cc10104f1980f54d57b2ce73a5ad56a",
-    urls = ["https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55"],
+    urls = [
+        "https://pypi.python.org/packages/source/s/six/six-1.10.0.tar.gz#md5=34eed507548117b2ab523ab14b2f8b55",
+    ],
 )
 
+http_archive(
+    name = "rules_proto",
+    sha256 = "57001a3b33ec690a175cdf0698243431ef27233017b9bed23f96d44b9c98242f",
+    strip_prefix = "rules_proto-9cd4f8f1ede19d81c6d48910429fe96776e567b1",
+    urls = [
+        "https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/9cd4f8f1ede19d81c6d48910429fe96776e567b1.tar.gz",
+        "https://github.com/bazelbuild/rules_proto/archive/9cd4f8f1ede19d81c6d48910429fe96776e567b1.tar.gz",
+    ],
+)
+
+load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
+rules_proto_dependencies()
+rules_proto_toolchains()
+
 bind(
     name = "python_headers",
     actual = "//util/python:python_headers",

+ 0 - 28
gmock.BUILD

@@ -1,28 +0,0 @@
-cc_library(
-    name = "gtest",
-    srcs = [
-        "googletest/src/gtest-all.cc",
-        "googlemock/src/gmock-all.cc",
-    ],
-    hdrs = glob([
-        "**/*.h",
-        "googletest/src/*.cc",
-        "googlemock/src/*.cc",
-    ]),
-    includes = [
-        "googlemock",
-        "googletest",
-        "googletest/include",
-        "googlemock/include",
-    ],
-    linkopts = ["-pthread"],
-    visibility = ["//visibility:public"],
-)
-
-cc_library(
-    name = "gtest_main",
-    srcs = ["googlemock/src/gmock_main.cc"],
-    linkopts = ["-pthread"],
-    visibility = ["//visibility:public"],
-    deps = [":gtest"],
-)

+ 344 - 334
protobuf.bzl

@@ -1,135 +1,136 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+load("@rules_python//python:defs.bzl", "py_library", "py_test")
+
 def _GetPath(ctx, path):
-  if ctx.label.workspace_root:
-    return ctx.label.workspace_root + '/' + path
-  else:
-    return path
+    if ctx.label.workspace_root:
+        return ctx.label.workspace_root + "/" + path
+    else:
+        return path
 
 def _IsNewExternal(ctx):
-  # Bazel 0.4.4 and older have genfiles paths that look like:
-  #   bazel-out/local-fastbuild/genfiles/external/repo/foo
-  # After the exec root rearrangement, they look like:
-  #   ../repo/bazel-out/local-fastbuild/genfiles/foo
-  return ctx.label.workspace_root.startswith("../")
+    # Bazel 0.4.4 and older have genfiles paths that look like:
+    #   bazel-out/local-fastbuild/genfiles/external/repo/foo
+    # After the exec root rearrangement, they look like:
+    #   ../repo/bazel-out/local-fastbuild/genfiles/foo
+    return ctx.label.workspace_root.startswith("../")
 
 def _GenDir(ctx):
-  if _IsNewExternal(ctx):
-    # We are using the fact that Bazel 0.4.4+ provides repository-relative paths
-    # for ctx.genfiles_dir.
-    return ctx.genfiles_dir.path + (
-        "/" + ctx.attr.includes[0] if ctx.attr.includes and ctx.attr.includes[0] else "")
-  # This means that we're either in the old version OR the new version in the local repo.
-  # Either way, appending the source path to the genfiles dir works.
-  return ctx.var["GENDIR"] + "/" + _SourceDir(ctx)
+    if _IsNewExternal(ctx):
+        # We are using the fact that Bazel 0.4.4+ provides repository-relative paths
+        # for ctx.genfiles_dir.
+        return ctx.genfiles_dir.path + (
+            "/" + ctx.attr.includes[0] if ctx.attr.includes and ctx.attr.includes[0] else ""
+        )
+
+    # This means that we're either in the old version OR the new version in the local repo.
+    # Either way, appending the source path to the genfiles dir works.
+    return ctx.var["GENDIR"] + "/" + _SourceDir(ctx)
 
 def _SourceDir(ctx):
-  if not ctx.attr.includes:
-    return ctx.label.workspace_root
-  if not ctx.attr.includes[0]:
-    return _GetPath(ctx, ctx.label.package)
-  if not ctx.label.package:
-    return _GetPath(ctx, ctx.attr.includes[0])
-  return _GetPath(ctx, ctx.label.package + '/' + ctx.attr.includes[0])
-
-def _CcHdrs(srcs, use_grpc_plugin=False):
-  ret = [s[:-len(".proto")] + ".pb.h" for s in srcs]
-  if use_grpc_plugin:
-    ret += [s[:-len(".proto")] + ".grpc.pb.h" for s in srcs]
-  return ret
-
-def _CcSrcs(srcs, use_grpc_plugin=False):
-  ret = [s[:-len(".proto")] + ".pb.cc" for s in srcs]
-  if use_grpc_plugin:
-    ret += [s[:-len(".proto")] + ".grpc.pb.cc" for s in srcs]
-  return ret
-
-def _CcOuts(srcs, use_grpc_plugin=False):
-  return _CcHdrs(srcs, use_grpc_plugin) + _CcSrcs(srcs, use_grpc_plugin)
+    if not ctx.attr.includes:
+        return ctx.label.workspace_root
+    if not ctx.attr.includes[0]:
+        return _GetPath(ctx, ctx.label.package)
+    if not ctx.label.package:
+        return _GetPath(ctx, ctx.attr.includes[0])
+    return _GetPath(ctx, ctx.label.package + "/" + ctx.attr.includes[0])
+
+def _CcHdrs(srcs, use_grpc_plugin = False):
+    ret = [s[:-len(".proto")] + ".pb.h" for s in srcs]
+    if use_grpc_plugin:
+        ret += [s[:-len(".proto")] + ".grpc.pb.h" for s in srcs]
+    return ret
+
+def _CcSrcs(srcs, use_grpc_plugin = False):
+    ret = [s[:-len(".proto")] + ".pb.cc" for s in srcs]
+    if use_grpc_plugin:
+        ret += [s[:-len(".proto")] + ".grpc.pb.cc" for s in srcs]
+    return ret
+
+def _CcOuts(srcs, use_grpc_plugin = False):
+    return _CcHdrs(srcs, use_grpc_plugin) + _CcSrcs(srcs, use_grpc_plugin)
 
 def _PyOuts(srcs):
-  return [s[:-len(".proto")] + "_pb2.py" for s in srcs]
+    return [s[:-len(".proto")] + "_pb2.py" for s in srcs]
 
-def _RelativeOutputPath(path, include, dest=""):
-  if include == None:
-    return path
+def _RelativeOutputPath(path, include, dest = ""):
+    if include == None:
+        return path
 
-  if not path.startswith(include):
-    fail("Include path %s isn't part of the path %s." % (include, path))
+    if not path.startswith(include):
+        fail("Include path %s isn't part of the path %s." % (include, path))
 
-  if include and include[-1] != '/':
-    include = include + '/'
-  if dest and dest[-1] != '/':
-    dest = dest + '/'
+    if include and include[-1] != "/":
+        include = include + "/"
+    if dest and dest[-1] != "/":
+        dest = dest + "/"
 
-  path = path[len(include):]
-  return dest + path
+    path = path[len(include):]
+    return dest + path
 
 def _proto_gen_impl(ctx):
-  """General implementation for generating protos"""
-  srcs = ctx.files.srcs
-  deps = []
-  deps += ctx.files.srcs
-  source_dir = _SourceDir(ctx)
-  gen_dir = _GenDir(ctx)
-  if source_dir:
-    import_flags = ["-I" + source_dir, "-I" + gen_dir]
-  else:
-    import_flags = ["-I."]
-
-  for dep in ctx.attr.deps:
-    import_flags += dep.proto.import_flags
-    deps += dep.proto.deps
-
-  args = []
-  if ctx.attr.gen_cc:
-    args += ["--cpp_out=" + gen_dir]
-  if ctx.attr.gen_py:
-    args += ["--python_out=" + gen_dir]
-
-  inputs = srcs + deps
-  if ctx.executable.plugin:
-    plugin = ctx.executable.plugin
-    lang = ctx.attr.plugin_language
-    if not lang and plugin.basename.startswith('protoc-gen-'):
-      lang = plugin.basename[len('protoc-gen-'):]
-    if not lang:
-      fail("cannot infer the target language of plugin", "plugin_language")
-
-    outdir = gen_dir
-    if ctx.attr.plugin_options:
-      outdir = ",".join(ctx.attr.plugin_options) + ":" + outdir
-    args += ["--plugin=protoc-gen-%s=%s" % (lang, plugin.path)]
-    args += ["--%s_out=%s" % (lang, outdir)]
-    inputs += [plugin]
-
-  if args:
-    ctx.action(
-        inputs=inputs,
-        outputs=ctx.outputs.outs,
-        arguments=args + import_flags + [s.path for s in srcs],
-        executable=ctx.executable.protoc,
-        mnemonic="ProtoCompile",
-        use_default_shell_env=True,
+    """General implementation for generating protos"""
+    srcs = ctx.files.srcs
+    deps = []
+    deps += ctx.files.srcs
+    source_dir = _SourceDir(ctx)
+    gen_dir = _GenDir(ctx)
+    if source_dir:
+        import_flags = ["-I" + source_dir, "-I" + gen_dir]
+    else:
+        import_flags = ["-I."]
+
+    for dep in ctx.attr.deps:
+        import_flags += dep.proto.import_flags
+        deps += dep.proto.deps
+
+    args = []
+    if ctx.attr.gen_cc:
+        args += ["--cpp_out=" + gen_dir]
+    if ctx.attr.gen_py:
+        args += ["--python_out=" + gen_dir]
+
+    inputs = srcs + deps
+    if ctx.executable.plugin:
+        plugin = ctx.executable.plugin
+        lang = ctx.attr.plugin_language
+        if not lang and plugin.basename.startswith("protoc-gen-"):
+            lang = plugin.basename[len("protoc-gen-"):]
+        if not lang:
+            fail("cannot infer the target language of plugin", "plugin_language")
+
+        outdir = gen_dir
+        if ctx.attr.plugin_options:
+            outdir = ",".join(ctx.attr.plugin_options) + ":" + outdir
+        args += ["--plugin=protoc-gen-%s=%s" % (lang, plugin.path)]
+        args += ["--%s_out=%s" % (lang, outdir)]
+        inputs += [plugin]
+
+    if args:
+        ctx.actions.run(
+            inputs = inputs,
+            outputs = ctx.outputs.outs,
+            arguments = args + import_flags + [s.path for s in srcs],
+            executable = ctx.executable.protoc,
+            mnemonic = "ProtoCompile",
+            use_default_shell_env = True,
+        )
+
+    return struct(
+        proto = struct(
+            srcs = srcs,
+            import_flags = import_flags,
+            deps = deps,
+        ),
     )
 
-  return struct(
-      proto=struct(
-          srcs=srcs,
-          import_flags=import_flags,
-          deps=deps,
-      ),
-  )
-
 proto_gen = rule(
     attrs = {
         "srcs": attr.label_list(allow_files = True),
-        "deps": attr.label_list(providers = ["proto"]),
+        "outs": attr.output_list(),
+        "gen_cc": attr.bool(),
+        "gen_py": attr.bool(),
         "includes": attr.string_list(),
-        "protoc": attr.label(
-            cfg = "host",
-            executable = True,
-            allow_single_file = True,
-            mandatory = True,
-        ),
         "plugin": attr.label(
             cfg = "host",
             allow_files = True,
@@ -137,9 +138,13 @@ proto_gen = rule(
         ),
         "plugin_language": attr.string(),
         "plugin_options": attr.string_list(),
-        "gen_cc": attr.bool(),
-        "gen_py": attr.bool(),
-        "outs": attr.output_list(),
+        "protoc": attr.label(
+            cfg = "host",
+            executable = True,
+            allow_single_file = True,
+            mandatory = True,
+        ),
+        "deps": attr.label_list(providers = ["proto"]),
     },
     output_to_genfiles = True,
     implementation = _proto_gen_impl,
@@ -167,236 +172,241 @@ Args:
 
 def cc_proto_library(
         name,
-        srcs=[],
-        deps=[],
-        cc_libs=[],
-        include=None,
-        protoc="//:protoc",
-        internal_bootstrap_hack=False,
-        use_grpc_plugin=False,
-        default_runtime="//:protobuf",
+        srcs = [],
+        deps = [],
+        cc_libs = [],
+        include = None,
+        protoc = "//:protoc",
+        internal_bootstrap_hack = False,
+        use_grpc_plugin = False,
+        default_runtime = "//:protobuf",
         **kargs):
-  """Bazel rule to create a C++ protobuf library from proto source files
-
-  NOTE: the rule is only an internal workaround to generate protos. The
-  interface may change and the rule may be removed when bazel has introduced
-  the native rule.
-
-  Args:
-    name: the name of the cc_proto_library.
-    srcs: the .proto files of the cc_proto_library.
-    deps: a list of dependency labels; must be cc_proto_library.
-    cc_libs: a list of other cc_library targets depended by the generated
-        cc_library.
-    include: a string indicating the include path of the .proto files.
-    protoc: the label of the protocol compiler to generate the sources.
-    internal_bootstrap_hack: a flag indicate the cc_proto_library is used only
-        for bootstraping. When it is set to True, no files will be generated.
-        The rule will simply be a provider for .proto files, so that other
-        cc_proto_library can depend on it.
-    use_grpc_plugin: a flag to indicate whether to call the grpc C++ plugin
-        when processing the proto files.
-    default_runtime: the implicitly default runtime which will be depended on by
-        the generated cc_library target.
-    **kargs: other keyword arguments that are passed to cc_library.
-
-  """
-
-  includes = []
-  if include != None:
-    includes = [include]
-
-  if internal_bootstrap_hack:
-    # For pre-checked-in generated files, we add the internal_bootstrap_hack
-    # which will skip the codegen action.
+    """Bazel rule to create a C++ protobuf library from proto source files
+
+    NOTE: the rule is only an internal workaround to generate protos. The
+    interface may change and the rule may be removed when bazel has introduced
+    the native rule.
+
+    Args:
+      name: the name of the cc_proto_library.
+      srcs: the .proto files of the cc_proto_library.
+      deps: a list of dependency labels; must be cc_proto_library.
+      cc_libs: a list of other cc_library targets depended by the generated
+          cc_library.
+      include: a string indicating the include path of the .proto files.
+      protoc: the label of the protocol compiler to generate the sources.
+      internal_bootstrap_hack: a flag indicate the cc_proto_library is used only
+          for bootstraping. When it is set to True, no files will be generated.
+          The rule will simply be a provider for .proto files, so that other
+          cc_proto_library can depend on it.
+      use_grpc_plugin: a flag to indicate whether to call the grpc C++ plugin
+          when processing the proto files.
+      default_runtime: the implicitly default runtime which will be depended on by
+          the generated cc_library target.
+      **kargs: other keyword arguments that are passed to cc_library.
+
+    """
+
+    includes = []
+    if include != None:
+        includes = [include]
+
+    if internal_bootstrap_hack:
+        # For pre-checked-in generated files, we add the internal_bootstrap_hack
+        # which will skip the codegen action.
+        proto_gen(
+            name = name + "_genproto",
+            srcs = srcs,
+            deps = [s + "_genproto" for s in deps],
+            includes = includes,
+            protoc = protoc,
+            visibility = ["//visibility:public"],
+        )
+
+        # An empty cc_library to make rule dependency consistent.
+        cc_library(
+            name = name,
+            **kargs
+        )
+        return
+
+    grpc_cpp_plugin = None
+    if use_grpc_plugin:
+        grpc_cpp_plugin = "//external:grpc_cpp_plugin"
+
+    gen_srcs = _CcSrcs(srcs, use_grpc_plugin)
+    gen_hdrs = _CcHdrs(srcs, use_grpc_plugin)
+    outs = gen_srcs + gen_hdrs
+
     proto_gen(
-        name=name + "_genproto",
-        srcs=srcs,
-        deps=[s + "_genproto" for s in deps],
-        includes=includes,
-        protoc=protoc,
-        visibility=["//visibility:public"],
+        name = name + "_genproto",
+        srcs = srcs,
+        deps = [s + "_genproto" for s in deps],
+        includes = includes,
+        protoc = protoc,
+        plugin = grpc_cpp_plugin,
+        plugin_language = "grpc",
+        gen_cc = 1,
+        outs = outs,
+        visibility = ["//visibility:public"],
+    )
+
+    if default_runtime and not default_runtime in cc_libs:
+        cc_libs = cc_libs + [default_runtime]
+    if use_grpc_plugin:
+        cc_libs = cc_libs + ["//external:grpc_lib"]
+    cc_library(
+        name = name,
+        srcs = gen_srcs,
+        hdrs = gen_hdrs,
+        deps = cc_libs + deps,
+        includes = includes,
+        **kargs
     )
-    # An empty cc_library to make rule dependency consistent.
-    native.cc_library(
-        name=name,
-        **kargs)
-    return
-
-  grpc_cpp_plugin = None
-  if use_grpc_plugin:
-    grpc_cpp_plugin = "//external:grpc_cpp_plugin"
-
-  gen_srcs = _CcSrcs(srcs, use_grpc_plugin)
-  gen_hdrs = _CcHdrs(srcs, use_grpc_plugin)
-  outs = gen_srcs + gen_hdrs
-
-  proto_gen(
-      name=name + "_genproto",
-      srcs=srcs,
-      deps=[s + "_genproto" for s in deps],
-      includes=includes,
-      protoc=protoc,
-      plugin=grpc_cpp_plugin,
-      plugin_language="grpc",
-      gen_cc=1,
-      outs=outs,
-      visibility=["//visibility:public"],
-  )
-
-  if default_runtime and not default_runtime in cc_libs:
-    cc_libs = cc_libs + [default_runtime]
-  if use_grpc_plugin:
-    cc_libs = cc_libs + ["//external:grpc_lib"]
-
-  native.cc_library(
-      name=name,
-      srcs=gen_srcs,
-      hdrs=gen_hdrs,
-      deps=cc_libs + deps,
-      includes=includes,
-      **kargs)
 
 def internal_gen_well_known_protos_java(srcs):
-  """Bazel rule to generate the gen_well_known_protos_java genrule
-
-  Args:
-    srcs: the well known protos
-  """
-  root = Label("%s//protobuf_java" % (native.repository_name())).workspace_root
-  pkg = native.package_name() + "/" if native.package_name() else ""
-  if root == "":
-    include = " -I%ssrc " % pkg
-  else:
-    include = " -I%s/%ssrc " % (root, pkg)
-  native.genrule(
-    name = "gen_well_known_protos_java",
-    srcs = srcs,
-    outs = [
-        "wellknown.srcjar",
-    ],
-    cmd = "$(location :protoc) --java_out=$(@D)/wellknown.jar" +
-          " %s $(SRCS) " % include +
-          " && mv $(@D)/wellknown.jar $(@D)/wellknown.srcjar",
-    tools = [":protoc"],
-  )
+    """Bazel rule to generate the gen_well_known_protos_java genrule
+
+    Args:
+      srcs: the well known protos
+    """
+    root = Label("%s//protobuf_java" % (native.repository_name())).workspace_root
+    pkg = native.package_name() + "/" if native.package_name() else ""
+    if root == "":
+        include = " -I%ssrc " % pkg
+    else:
+        include = " -I%s/%ssrc " % (root, pkg)
+    native.genrule(
+        name = "gen_well_known_protos_java",
+        srcs = srcs,
+        outs = [
+            "wellknown.srcjar",
+        ],
+        cmd = "$(location :protoc) --java_out=$(@D)/wellknown.jar" +
+              " %s $(SRCS) " % include +
+              " && mv $(@D)/wellknown.jar $(@D)/wellknown.srcjar",
+        tools = [":protoc"],
+    )
 
 def internal_copied_filegroup(name, srcs, strip_prefix, dest, **kwargs):
-  """Macro to copy files to a different directory and then create a filegroup.
-
-  This is used by the //:protobuf_python py_proto_library target to work around
-  an issue caused by Python source files that are part of the same Python
-  package being in separate directories.
-
-  Args:
-    srcs: The source files to copy and add to the filegroup.
-    strip_prefix: Path to the root of the files to copy.
-    dest: The directory to copy the source files into.
-    **kwargs: extra arguments that will be passesd to the filegroup.
-  """
-  outs = [_RelativeOutputPath(s, strip_prefix, dest) for s in srcs]
-
-  native.genrule(
-      name = name + "_genrule",
-      srcs = srcs,
-      outs = outs,
-      cmd = " && ".join(
-          ["cp $(location %s) $(location %s)" %
-           (s, _RelativeOutputPath(s, strip_prefix, dest)) for s in srcs]),
-  )
-
-  native.filegroup(
-      name = name,
-      srcs = outs,
-      **kwargs)
+    """Macro to copy files to a different directory and then create a filegroup.
+
+    This is used by the //:protobuf_python py_proto_library target to work around
+    an issue caused by Python source files that are part of the same Python
+    package being in separate directories.
+
+    Args:
+      srcs: The source files to copy and add to the filegroup.
+      strip_prefix: Path to the root of the files to copy.
+      dest: The directory to copy the source files into.
+      **kwargs: extra arguments that will be passesd to the filegroup.
+    """
+    outs = [_RelativeOutputPath(s, strip_prefix, dest) for s in srcs]
+
+    native.genrule(
+        name = name + "_genrule",
+        srcs = srcs,
+        outs = outs,
+        cmd = " && ".join(
+            ["cp $(location %s) $(location %s)" %
+             (s, _RelativeOutputPath(s, strip_prefix, dest)) for s in srcs],
+        ),
+    )
+
+    native.filegroup(
+        name = name,
+        srcs = outs,
+        **kwargs
+    )
 
 def py_proto_library(
         name,
-        srcs=[],
-        deps=[],
-        py_libs=[],
-        py_extra_srcs=[],
-        include=None,
-        default_runtime="//:protobuf_python",
-        protoc="//:protoc",
-        use_grpc_plugin=False,
+        srcs = [],
+        deps = [],
+        py_libs = [],
+        py_extra_srcs = [],
+        include = None,
+        default_runtime = "//:protobuf_python",
+        protoc = "//:protoc",
+        use_grpc_plugin = False,
         **kargs):
-  """Bazel rule to create a Python protobuf library from proto source files
-
-  NOTE: the rule is only an internal workaround to generate protos. The
-  interface may change and the rule may be removed when bazel has introduced
-  the native rule.
-
-  Args:
-    name: the name of the py_proto_library.
-    srcs: the .proto files of the py_proto_library.
-    deps: a list of dependency labels; must be py_proto_library.
-    py_libs: a list of other py_library targets depended by the generated
-        py_library.
-    py_extra_srcs: extra source files that will be added to the output
-        py_library. This attribute is used for internal bootstrapping.
-    include: a string indicating the include path of the .proto files.
-    default_runtime: the implicitly default runtime which will be depended on by
-        the generated py_library target.
-    protoc: the label of the protocol compiler to generate the sources.
-    use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
-        when processing the proto files.
-    **kargs: other keyword arguments that are passed to cc_library.
-
-  """
-  outs = _PyOuts(srcs)
-
-  includes = []
-  if include != None:
-    includes = [include]
-
-  grpc_python_plugin = None
-  if use_grpc_plugin:
-    grpc_python_plugin = "//external:grpc_python_plugin"
-    # Note: Generated grpc code depends on Python grpc module. This dependency
-    # is not explicitly listed in py_libs. Instead, host system is assumed to
-    # have grpc installed.
-
-  proto_gen(
-      name=name + "_genproto",
-      srcs=srcs,
-      deps=[s + "_genproto" for s in deps],
-      includes=includes,
-      protoc=protoc,
-      gen_py=1,
-      outs=outs,
-      visibility=["//visibility:public"],
-      plugin=grpc_python_plugin,
-      plugin_language="grpc"
-  )
-
-  if default_runtime and not default_runtime in py_libs + deps:
-    py_libs = py_libs + [default_runtime]
-
-  native.py_library(
-      name=name,
-      srcs=outs+py_extra_srcs,
-      deps=py_libs+deps,
-      imports=includes,
-      **kargs)
+    """Bazel rule to create a Python protobuf library from proto source files
+
+    NOTE: the rule is only an internal workaround to generate protos. The
+    interface may change and the rule may be removed when bazel has introduced
+    the native rule.
+
+    Args:
+      name: the name of the py_proto_library.
+      srcs: the .proto files of the py_proto_library.
+      deps: a list of dependency labels; must be py_proto_library.
+      py_libs: a list of other py_library targets depended by the generated
+          py_library.
+      py_extra_srcs: extra source files that will be added to the output
+          py_library. This attribute is used for internal bootstrapping.
+      include: a string indicating the include path of the .proto files.
+      default_runtime: the implicitly default runtime which will be depended on by
+          the generated py_library target.
+      protoc: the label of the protocol compiler to generate the sources.
+      use_grpc_plugin: a flag to indicate whether to call the Python C++ plugin
+          when processing the proto files.
+      **kargs: other keyword arguments that are passed to cc_library.
+
+    """
+    outs = _PyOuts(srcs)
+
+    includes = []
+    if include != None:
+        includes = [include]
+
+    grpc_python_plugin = None
+    if use_grpc_plugin:
+        grpc_python_plugin = "//external:grpc_python_plugin"
+        # Note: Generated grpc code depends on Python grpc module. This dependency
+        # is not explicitly listed in py_libs. Instead, host system is assumed to
+        # have grpc installed.
+
+    proto_gen(
+        name = name + "_genproto",
+        srcs = srcs,
+        deps = [s + "_genproto" for s in deps],
+        includes = includes,
+        protoc = protoc,
+        gen_py = 1,
+        outs = outs,
+        visibility = ["//visibility:public"],
+        plugin = grpc_python_plugin,
+        plugin_language = "grpc",
+    )
+
+    if default_runtime and not default_runtime in py_libs + deps:
+        py_libs = py_libs + [default_runtime]
+    py_library(
+        name = name,
+        srcs = outs + py_extra_srcs,
+        deps = py_libs + deps,
+        imports = includes,
+        **kargs
+    )
 
 def internal_protobuf_py_tests(
-    name,
-    modules=[],
-    **kargs):
-  """Bazel rules to create batch tests for protobuf internal.
-
-  Args:
-    name: the name of the rule.
-    modules: a list of modules for tests. The macro will create a py_test for
-        each of the parameter with the source "google/protobuf/%s.py"
-    kargs: extra parameters that will be passed into the py_test.
-
-  """
-  for m in modules:
-    s = "python/google/protobuf/internal/%s.py" % m
-    native.py_test(
-        name="py_%s" % m,
-        srcs=[s],
-        main=s,
-        **kargs)
+        name,
+        modules = [],
+        **kargs):
+    """Bazel rules to create batch tests for protobuf internal.
+
+    Args:
+      name: the name of the rule.
+      modules: a list of modules for tests. The macro will create a py_test for
+          each of the parameter with the source "google/protobuf/%s.py"
+      kargs: extra parameters that will be passed into the py_test.
+
+    """
+    for m in modules:
+        s = "python/google/protobuf/internal/%s.py" % m
+        py_test(
+            name = "py_%s" % m,
+            srcs = [s],
+            main = s,
+            **kargs
+        )

+ 0 - 13
six.BUILD

@@ -1,13 +0,0 @@
-genrule(
-  name = "copy_six",
-  srcs = ["six-1.10.0/six.py"],
-  outs = ["six.py"],
-  cmd = "cp $< $(@)",
-)
-
-py_library(
-  name = "six",
-  srcs = ["six.py"],
-  srcs_version = "PY2AND3",
-  visibility = ["//visibility:public"],
-)

+ 2 - 0
util/python/BUILD

@@ -1,3 +1,5 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
 # 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