diff options
Diffstat (limited to 'scripts/include_functions_kernels.py')
-rw-r--r--[-rwxr-xr-x] | scripts/include_functions_kernels.py | 61 |
1 files changed, 48 insertions, 13 deletions
diff --git a/scripts/include_functions_kernels.py b/scripts/include_functions_kernels.py index 074f7949b8..49c12867e6 100755..100644 --- a/scripts/include_functions_kernels.py +++ b/scripts/include_functions_kernels.py @@ -1,17 +1,52 @@ #!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (c) 2017-2018, 2020-2021, 2023 Arm Limited. +# +# SPDX-License-Identifier: MIT +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. import glob import collections import os -Target = collections.namedtuple('Target', 'name prefix') +armcv_path = "arm_compute" +src_path ="src" -targets = [Target("NEON", "NE"), Target("CL", "CL"), Target("CPP", "CPP"), Target("GLES_COMPUTE", "GC")] +Target = collections.namedtuple('Target', 'name prefix basepath') -armcv_path = "arm_compute" -core_path = armcv_path + "/core/" -runtime_path = armcv_path + "/runtime/" -include_str = "#include \"" +core_targets = [ + Target("NEON", "NE", src_path), # Arm® Neon™ kernels are under src + Target("CL", "CL", src_path), # CL kernels are under src + Target("CPP", "CPP", armcv_path) # CPP kernels are under arm_compute + ] +# All functions are under arm_compute +runtime_targets = [ + Target("NEON", "NE", armcv_path), + Target("CL", "CL", armcv_path), + Target("CPP", "CPP", armcv_path) + ] + +core_path = "/core/" +runtime_path = "/runtime/" +include_str = "#include \"" def read_file(file): with open(file, "r") as f: @@ -39,19 +74,19 @@ 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() + updated_files.sort(key=lambda x: x.lower()) return updated_files -def include_components(path, header_prefix, folder, subfolders=None): - for t in targets: - target_path = path + t.name + "/" +def include_components(target, path, header_prefix, folder, subfolders=None): + for t in target: + target_path = t.basepath + 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) for s in subfolders or []: include_list += create_include_list( target_path + folder + "/" + s) - include_list.sort() + include_list.sort(key=lambda x: x.lower()) lines = read_file(components_file) lines, first_pos = remove_existing_includes(lines) lines = add_updated_includes(lines, first_pos, include_list) @@ -60,7 +95,7 @@ def include_components(path, header_prefix, folder, subfolders=None): if __name__ == "__main__": # Include kernels - include_components(core_path, "Kernels.h", "kernels", ["arm32", "arm64"]) + include_components(core_targets, core_path, "Kernels.h", "kernels", ["arm32", "arm64"]) # Include functions - include_components(runtime_path, "Functions.h", "functions") + include_components(runtime_targets, runtime_path, "Functions.h", "functions") |