diff options
-rw-r--r-- | .gitmodules | 4 | ||||
m--------- | 3rdparty | 0 | ||||
-rw-r--r-- | SConstruct | 3 | ||||
-rw-r--r-- | docs/00_introduction.dox | 23 | ||||
-rw-r--r-- | examples/SConscript | 30 | ||||
-rwxr-xr-x | scripts/clang_tidy_rules.py | 7 | ||||
-rw-r--r-- | tests/SConscript | 36 |
7 files changed, 58 insertions, 45 deletions
diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index da9bc32fee..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "3rdparty"] - path = 3rdparty - url = https://eu-gerrit-1.euhpc.arm.com/VisualCompute/3rdparty - branch = master diff --git a/3rdparty b/3rdparty deleted file mode 160000 -Subproject 679eadd4df491b26b8b824690348e334ad588c7 diff --git a/SConstruct b/SConstruct index 15197a632f..b543bc0ebb 100644 --- a/SConstruct +++ b/SConstruct @@ -64,8 +64,7 @@ vars.AddVariables( PathVariable("install_dir", "Specify sub-folder for the install", "", PathVariable.PathAccept), BoolVariable("exceptions", "Enable/disable C++ exception support", True), PathVariable("linker_script", "Use an external linker script", "", PathVariable.PathAccept), - #FIXME Remove before release (And remove all references to INTERNAL_ONLY) - BoolVariable("internal_only", "Enable ARM internal only tests", False), + PathVariable("external_tests_dir", "Add examples, benchmarks and tests to the tests suite", "", PathVariable.PathAccept), ListVariable("custom_options", "Custom options that can be used to turn on/off features", "none", ["disable_mmla_fp"]), ListVariable("data_type_support", "Enable a list of data types to support", "all", ["qasymm8", "qasymm8_signed", "qsymm16", "fp16", "fp32"]), ("toolchain_prefix", "Override the toolchain prefix", ""), diff --git a/docs/00_introduction.dox b/docs/00_introduction.dox index 448025846b..189067c81f 100644 --- a/docs/00_introduction.dox +++ b/docs/00_introduction.dox @@ -1481,6 +1481,10 @@ To see the build options available simply run ```scons -h```: default: False actual: False + external_tests_dir: Add examples, benchmarks and tests to the tests suite from an external path ( /path/to/external_tests_dir ) + default: + actual: + @b debug / @b asserts: - With debug=1 asserts are enabled, and the library is built with symbols and no optimisations enabled. - With debug=0 and asserts=1: Optimisations are enabled and symbols are removed, however all the asserts are still present (This is about 20% slower than the release build) @@ -1535,6 +1539,25 @@ Example: @sa Scheduler::set +@b external_tests_dir Add examples, benchmarks and tests to the tests suite from an external path ( /path/to/external_tests_dir ) + +In order to use this option, the external tests directory must have the following structure: + + EXTERNAL_TESTS_DIR: + └── tests + ├── benchmark + │ ├── CL + │ ├── datasets + │ ├── fixtures + │ └── NEON + └── validation + ├── CL + ├── datasets + ├── fixtures + └── NEON + +Then, build the library with `external_tests_dir=<PATH_TO_EXTERNAL_TESTS_DIR>`. + @subsection S3_2_linux Building for Linux @subsubsection S3_2_1_library How to build the library ? diff --git a/examples/SConscript b/examples/SConscript index cd07c6a15a..ff457faf38 100644 --- a/examples/SConscript +++ b/examples/SConscript @@ -131,19 +131,19 @@ if env['gles_compute']: alias = examples_env.Alias(example, prog) Default(alias) -#FIXME Delete 3rdparty builds before release -for file in Glob("#3rdparty/examples/graph_*.cpp"): - example = os.path.basename(os.path.splitext(str(file))[0]) - prog = None +if env['external_tests_dir']: + for file in Glob(env['external_tests_dir'] + "/examples/graph_*.cpp"): + example = os.path.basename(os.path.splitext(str(file))[0]) + prog = None - if env['os'] in ['android', 'bare_metal'] or env['standalone']: - prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--whole-archive',graph_dependency,'-Wl,--no-whole-archive'] + extra_link_flags) - Depends(prog, graph_dependency) - prog = install_bin(prog) - else: - #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies - prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined'] ) - Depends(prog, graph_dependency) - prog = install_bin(prog) - alias = examples_env.Alias(example, prog) - Default(alias) + if env['os'] in ['android', 'bare_metal'] or env['standalone']: + prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--whole-archive',graph_dependency,'-Wl,--no-whole-archive'] + extra_link_flags) + Depends(prog, graph_dependency) + prog = install_bin(prog) + else: + #-Wl,--allow-shlib-undefined: Ignore dependencies of dependencies + prog = examples_env.Program(example, [examples_env.Object(source=file, target=example), utils, graph_utils], LIBS = examples_libs + arm_compute_graph_libs, LINKFLAGS=examples_env["LINKFLAGS"]+['-Wl,--allow-shlib-undefined'] ) + Depends(prog, graph_dependency) + prog = install_bin(prog) + alias = examples_env.Alias(example, prog) + Default(alias) diff --git a/scripts/clang_tidy_rules.py b/scripts/clang_tidy_rules.py index 1e24b042de..ddf25384f2 100755 --- a/scripts/clang_tidy_rules.py +++ b/scripts/clang_tidy_rules.py @@ -11,8 +11,7 @@ def get_list_includes(): "src/core/NEON/kernels/assembly " \ "src/core/NEON/kernels/convolution/winograd " \ "include/linux include " \ - ". " \ - "3rdparty/include kernels".split() + ". ".split() def get_list_flags( filename, arch): assert arch in ["armv7", "aarch64"] @@ -64,7 +63,6 @@ def filter_clang_tidy_lines( lines ): ("Utils.h" in line and "no member named 'unmap' in 'arm_compute::Tensor'" in line) or ("Utils.h" in line and "no member named 'map' in 'arm_compute::Tensor'" in line) or ("CPUUtils.cpp" in line and "'asm/hwcap.h' file not found" in line) or - "3rdparty" in line or ("'arm_compute_version.embed' file not found" in line) ): print_context=False continue @@ -119,8 +117,7 @@ def filter_clang_tidy_lines( lines ): ("GCKernelLibrary.cpp" in line and "warning: do not declare C-style arrays" in line) or ("Utils.h" in line and "warning: Use of zero-allocated memory" in line) or ("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "misc-non-private-member-variables-in-classes" in line) or # This is to prevent false positive, should be reassessed with the newer clang-tidy - ("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "cppcoreguidelines-pro-type-member-init" in line) or # This is to prevent false positive, should be reassessed with the newer clang-tidy - "3rdparty" in line): + ("NEDepthwiseConvolutionLayerNativeKernel.cpp" in line and "cppcoreguidelines-pro-type-member-init" in line)): # This is to prevent false positive, should be reassessed with the newer clang-tidy print_context=False continue diff --git a/tests/SConscript b/tests/SConscript index 6fc67af747..565aeac4a1 100644 --- a/tests/SConscript +++ b/tests/SConscript @@ -88,20 +88,16 @@ else: if env['os'] in ['bare_metal']: Import("bootcode_o") -#FIXME Delete before release -if env['internal_only']: - test_env.Append(CPPDEFINES=['INTERNAL_ONLY']) - -test_env.Append(CPPPATH = ["#3rdparty/include"]) -test_env.Append(LIBPATH = ["#3rdparty/%s/%s" % (env['os'], env['arch'])]) +if env['external_tests_dir']: + test_env.Append(CPPPATH = [env['external_tests_dir'] + "/include"]) + test_env.Append(LIBPATH = [env['external_tests_dir'] + "/%s/%s" % (env['os'], env['arch'])]) common_files = Glob('*.cpp') common_objects = [test_env.StaticObject(f) for f in common_files] files_benchmark = Glob('benchmark/*.cpp') -#FIXME Delete before release -if env['internal_only']: - files_benchmark += Glob('../3rdparty/tests/benchmark/*.cpp') +if env['external_tests_dir']: + files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/*.cpp') # Add unit tests files_validation = Glob('validation/UNIT/*/*.cpp') @@ -118,23 +114,20 @@ if env['opencl']: files_benchmark += Glob('benchmark/CL/*/' + filter_pattern) files_benchmark += Glob('benchmark/CL/' + filter_pattern) - #FIXME Delete before release - if env['internal_only']: - files_benchmark += Glob('../3rdparty/tests/benchmark/CL/' + filter_pattern) + if env['external_tests_dir']: + files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/CL/' + filter_pattern) files_validation += Glob('validation/CL/*/' + filter_pattern) files_validation += Glob('validation/CL/' + filter_pattern) - #FIXME Delete before release - if env['internal_only']: - files_validation += Glob('../3rdparty/tests/validation/CL/' + filter_pattern) + if env['external_tests_dir']: + files_validation += Glob(env['external_tests_dir'] + '/tests/validation/CL/' + filter_pattern) if env['neon']: filter_pattern = test_env['test_filter'] files_benchmark += Glob('benchmark/NEON/*/' + filter_pattern) files_benchmark += Glob('benchmark/NEON/' + filter_pattern) - #FIXME Delete before release - if env['internal_only']: - files_benchmark += Glob('../3rdparty/tests/benchmark/NEON/' + filter_pattern) + if env['external_tests_dir']: + files_benchmark += Glob(env['external_tests_dir'] + '/tests/benchmark/NEON/' + filter_pattern) files_validation += Glob('validation/NEON/' + filter_pattern) if env['os'] == 'bare_metal': @@ -143,6 +136,8 @@ if env['neon']: files_validation += Glob('validation/NEON/UNIT/TensorAllocator.cpp' + filter_pattern) else: files_validation += Glob('validation/NEON/*/' + filter_pattern) + if env['external_tests_dir']: + files_validation += Glob(env['external_tests_dir'] + '/tests/validation/NEON/' + filter_pattern) if env['gles_compute']: @@ -241,7 +236,10 @@ if test_env['benchmark_examples']: graph_utils = test_env.Object(source="../utils/GraphUtils.cpp", target="GraphUtils") graph_params = test_env.Object(source="../utils/CommonGraphOptions.cpp", target="CommonGraphOptions") arm_compute_benchmark_examples = [] - for examples_folder in [ "../examples", "../3rdparty/examples"]: + all_examples_folders = ["../examples"] + if env['external_tests_dir']: + all_examples_folders.append(env['external_tests_dir'] + "/examples") + for examples_folder in all_examples_folders: if test_env['neon']: for file in Glob("%s/neon_*.cpp" % examples_folder): example = "benchmark_" + os.path.basename(os.path.splitext(str(file))[0]) |