aboutsummaryrefslogtreecommitdiff
path: root/scripts/include_functions_kernels.py
diff options
context:
space:
mode:
authorAnthony Barbier <anthony.barbier@arm.com>2017-09-04 18:44:23 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-09-17 13:03:09 +0100
commit6ff3b19ee6120edf015fad8caab2991faa3070af (patch)
treea7a6dcd16dfd56d79fa1b56a313caeebcc939b68 /scripts/include_functions_kernels.py
downloadComputeLibrary-6ff3b19ee6120edf015fad8caab2991faa3070af.tar.gz
COMPMID-344 Updated doxygen
Change-Id: I32f7b84daa560e460b77216add529c8fa8b327ae
Diffstat (limited to 'scripts/include_functions_kernels.py')
-rwxr-xr-xscripts/include_functions_kernels.py64
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")