blob: 09054232a504b5c98b9a6b66fea4e1cf08d9c839 [file] [log] [blame]
def fast_gaussian(sigmas, sizes):
files = []
for _, sigma_name, _ in sigmas:
for cols, rows in sizes:
files.append("fast_gaussian_%dx%d_%s" % (cols, rows, sigma_name))
for _, sigma_name, _ in sigmas:
for cols, rows in sizes:
files.append("fast_gaussian_subtract_%dx%d_%s" % (cols, rows, sigma_name))
for cols, rows in sizes:
files.append("fast_subtract_%dx%d" % (cols, rows))
params = struct(
sigmas = sigmas,
sizes = sizes,
)
headers = [f + ".h" for f in files] + [
"fast_gaussian_all.h",
]
objects = [f + ".o" for f in files] + [
"fast_gaussian_runtime.o",
]
htmls = [f + ".html" for f in files]
native.genrule(
name = "generate_fast_gaussian",
tools = [
":fast_gaussian_runner",
],
cmd = " ".join([
"$(location fast_gaussian_runner)",
"'" + params.to_json() + "'",
# TODO(Brian): This should be RULEDIR once we have support for that.
"$(@D)",
"$(TARGET_CPU)",
]),
outs = headers + objects + htmls,
restricted_to = [
"//tools:k8",
"//tools:armhf-debian",
],
)
native.cc_library(
name = "fast_gaussian_all",
hdrs = ["fast_gaussian_all.h"],
srcs = headers + objects,
deps = [
"//third_party:halide_runtime",
],
restricted_to = [
"//tools:k8",
"//tools:armhf-debian",
],
)