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", | |
], | |
) |