diff options
author | Anthony Barbier <anthony.barbier@arm.com> | 2017-09-04 18:44:23 +0100 |
---|---|---|
committer | Anthony Barbier <anthony.barbier@arm.com> | 2018-09-17 13:03:09 +0100 |
commit | 6ff3b19ee6120edf015fad8caab2991faa3070af (patch) | |
tree | a7a6dcd16dfd56d79fa1b56a313caeebcc939b68 /scripts/include_functions_kernels.py | |
download | ComputeLibrary-6ff3b19ee6120edf015fad8caab2991faa3070af.tar.gz |
COMPMID-344 Updated doxygen
Change-Id: I32f7b84daa560e460b77216add529c8fa8b327ae
Diffstat (limited to 'scripts/include_functions_kernels.py')
-rwxr-xr-x | scripts/include_functions_kernels.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/scripts/include_functions_kernels.py b/scripts/include_functions_kernels.py new file mode 100755 index 0000000000..9f566cbc1a --- /dev/null +++ b/scripts/include_functions_kernels.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3.5 + +import glob +import collections +import os + +Target = collections.namedtuple('Target', 'name prefix') + +targets = [Target("NEON", "NE"), Target("CL", "CL"), Target("CPP", "CPP")] + +armcv_path = "arm_compute" +core_path = armcv_path + "/core/" +runtime_path = armcv_path + "/runtime/" +include_str = "#include \"" + + +def read_file(file): + with open(file, "r") as f: + lines = f.readlines() + return lines + + +def write_file(file, lines): + with open(file, "w") as f: + for line in lines: + f.write(line) + + +def remove_existing_includes(lines): + first_pos = next(i for i, line in enumerate(lines) if include_str in line) + return [x for x in lines if not x.startswith(include_str)], first_pos + + +def add_updated_includes(lines, pos, includes): + lines[pos:pos] = includes + return lines + + +def create_include_list(folder): + files_path = folder + "/*.h" + files = glob.glob(files_path) + updated_files = [include_str + folder + "/" + x.rsplit('/',1)[1] + "\"\n" for x in files] + updated_files.sort() + return updated_files + + +def include_components(path, header_prefix, folder): + for t in targets: + target_path = path + t.name + "/" + components_file = target_path + t.prefix + header_prefix + if os.path.exists(components_file): + include_list = create_include_list(target_path + folder) + lines = read_file(components_file) + lines, first_pos = remove_existing_includes(lines) + lines = add_updated_includes(lines, first_pos, include_list) + write_file(components_file, lines) + + +if __name__ == "__main__": + # Include kernels + include_components(core_path, "Kernels.h", "kernels") + + # Include functions + include_components(runtime_path, "Functions.h", "functions") |