Fix bug in _internal_copy_files where the rule would fail in downstream repositories.
Taken from https://github.com/protocolbuffers/upb/blob/main/bazel/protobuf.patch#L42 Fixes https://github.com/protocolbuffers/protobuf/issues/12620. PiperOrigin-RevId: 528586464pull/12632/head
parent
ad2dd26ffc
commit
b36c39236e
|
@ -1,4 +1,12 @@
|
|||
# Internal helpers for building the Python protobuf runtime.
|
||||
"""
|
||||
Internal helpers for building the Python protobuf runtime.
|
||||
"""
|
||||
|
||||
def _remove_cross_repo_path(path):
|
||||
components = path.split("/")
|
||||
if components[0] == "..":
|
||||
return "/".join(components[2:])
|
||||
return path
|
||||
|
||||
def _internal_copy_files_impl(ctx):
|
||||
strip_prefix = ctx.attr.strip_prefix
|
||||
|
@ -7,10 +15,11 @@ def _internal_copy_files_impl(ctx):
|
|||
|
||||
src_dests = []
|
||||
for src in ctx.files.srcs:
|
||||
if src.short_path[:len(strip_prefix)] != strip_prefix:
|
||||
short_path = _remove_cross_repo_path(src.short_path)
|
||||
if short_path[:len(strip_prefix)] != strip_prefix:
|
||||
fail("Source does not start with %s: %s" %
|
||||
(strip_prefix, src.short_path))
|
||||
dest = ctx.actions.declare_file(src.short_path[len(strip_prefix):])
|
||||
(strip_prefix, short_path))
|
||||
dest = ctx.actions.declare_file(short_path[len(strip_prefix):])
|
||||
src_dests.append([src, dest])
|
||||
|
||||
if ctx.attr.is_windows:
|
||||
|
|
Loading…
Reference in New Issue