| """TensorFlow Lite Support Library Helper Rules for iOS""" |
| |
| # When the static framework is built with bazel, the all header files are moved |
| # to the "Headers" directory with no header path prefixes. This auxiliary rule |
| # is used for stripping the path prefix to the C API header files included by |
| # other C API header files. |
| def strip_c_api_include_path_prefix(name, hdr_labels, prefix = ""): |
| """Create modified header files with the common.h include path stripped out. |
| |
| Args: |
| name: The name to be used as a prefix to the generated genrules. |
| hdr_labels: List of header labels to strip out the include path. Each |
| label must end with a colon followed by the header file name. |
| prefix: Optional prefix path to prepend to the header inclusion path. |
| """ |
| |
| for hdr_label in hdr_labels: |
| hdr_filename = hdr_label.split(":")[-1] |
| hdr_basename = hdr_filename.split(".")[0] |
| |
| native.genrule( |
| name = "{}_{}".format(name, hdr_basename), |
| srcs = [hdr_label], |
| outs = [hdr_filename], |
| cmd = """ |
| sed 's|#include ".*/\\([^/]\\{{1,\\}}\\.h\\)"|#include "{}\\1"|'\ |
| "$(location {})"\ |
| > "$@" |
| """.format(prefix, hdr_label), |
| ) |