4dc4b19ddb
GitOrigin-RevId: 1e13be30e2c6838d4a2ff768a39c414bc80534bb
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
"""Build rules to generate metadata schema versions."""
|
|
|
|
METADATA_SCHEMA_FILE = "//mediapipe/tasks/metadata:metadata_schema.fbs"
|
|
|
|
def stamp_metadata_parser_version(
|
|
name,
|
|
srcs,
|
|
outs):
|
|
"""Stamps the latest metadata parser version into the srcs files.
|
|
|
|
Replaces all the occurrences of "{LATEST_METADATA_PARSER_VERSION}" in the
|
|
srcs files with the metadata schema version extracted from
|
|
METADATA_SCHEMA_FILE and then outputs the generated file into outs,
|
|
respectively. The number of srcs files needs to match the number of outs
|
|
files.
|
|
|
|
Args:
|
|
name: Rule name. (required)
|
|
srcs: List of source files. (required)
|
|
outs: List of output files. (required)
|
|
"""
|
|
if len(srcs) != len(outs):
|
|
fail(("The number of srcs files (%d) does not match that of the outs" +
|
|
" files (%d).") %
|
|
(len(srcs), len(outs)))
|
|
|
|
for i in range(0, len(srcs)):
|
|
native.genrule(
|
|
name = "%s_file%d" % (name, i),
|
|
srcs = [srcs[i]],
|
|
outs = [outs[i]],
|
|
tools = [METADATA_SCHEMA_FILE],
|
|
# Gets the metadata schema version from the file, and stamps it
|
|
# into the srcs file.
|
|
cmd = "version=$$(sed -n -e '/Schema Semantic version/ s/.*\\: *//p' $(location %s));" %
|
|
METADATA_SCHEMA_FILE +
|
|
'sed "s/{LATEST_METADATA_PARSER_VERSION}/$$version/" $< > $@',
|
|
)
|
|
|
|
native.filegroup(
|
|
name = name,
|
|
srcs = outs,
|
|
)
|