new file mode 100644
@@ -0,0 +1,130 @@
+From 1e4c3016547b5f75e515d4b9a7202733c47f5a18 Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Wed, 4 Dec 2024 14:46:17 -0600
+Subject: [PATCH] fix: Fix indention in cmake generator script
+
+All other items in these lists use tabs, the first couple
+lines should match. Switch them to tabs then regenerate
+the CMakeLists.txt file.
+
+While here fix the missing ending newline.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: Icab852fc43ae08e7858857881c996d233c835289
+---
+ scripts/generate_build_files.py | 27 ++++++++++++++-------------
+ src/CMakeLists.txt | 26 +++++++++++++-------------
+ 2 files changed, 27 insertions(+), 26 deletions(-)
+
+diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py
+index f88cf1af44..52a8cc14da 100644
+--- a/scripts/generate_build_files.py
++++ b/scripts/generate_build_files.py
+@@ -168,28 +168,29 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core):
+ template = f"""{get_template_header()}
+
+ target_sources(
+- arm_compute_graph
+- PRIVATE
+- {line_separator.join(srcs_graph)}
++ arm_compute_graph
++ PRIVATE
++ {line_separator.join(srcs_graph)}
+ )
+
+ target_sources(
+- arm_compute_sve
+- PRIVATE
+- {line_separator.join(srcs_sve)}
++ arm_compute_sve
++ PRIVATE
++ {line_separator.join(srcs_sve)}
+ )
+
+ target_sources(
+- arm_compute_sve2
+- PRIVATE
+- {line_separator.join(srcs_sve2)}
++ arm_compute_sve2
++ PRIVATE
++ {line_separator.join(srcs_sve2)}
+ )
+
+ target_sources(
+- arm_compute
+- PRIVATE
+- {line_separator.join(srcs_core)}
+-)"""
++ arm_compute
++ PRIVATE
++ {line_separator.join(srcs_core)}
++)
++"""
+ return template
+
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ff3bed96df..f1b275532a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -21,9 +21,9 @@
+ # SOFTWARE.
+
+ target_sources(
+- arm_compute_graph
+- PRIVATE
+- graph/DataLayerVisitor.cpp
++ arm_compute_graph
++ PRIVATE
++ graph/DataLayerVisitor.cpp
+ graph/Graph.cpp
+ graph/GraphBuilder.cpp
+ graph/GraphContext.cpp
+@@ -101,9 +101,9 @@ target_sources(
+ )
+
+ target_sources(
+- arm_compute_sve
+- PRIVATE
+- core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp
++ arm_compute_sve
++ PRIVATE
++ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_indirect.cpp
+@@ -332,9 +332,9 @@ target_sources(
+ )
+
+ target_sources(
+- arm_compute_sve2
+- PRIVATE
+- cpu/kernels/activation/generic/sve2/lut.cpp
++ arm_compute_sve2
++ PRIVATE
++ cpu/kernels/activation/generic/sve2/lut.cpp
+ cpu/kernels/activation/generic/sve2/qasymm8.cpp
+ cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp
+ cpu/kernels/activation/generic/sve2/qsymm16.cpp
+@@ -357,9 +357,9 @@ target_sources(
+ )
+
+ target_sources(
+- arm_compute
+- PRIVATE
+- c/AclContext.cpp
++ arm_compute
++ PRIVATE
++ c/AclContext.cpp
+ c/AclOperator.cpp
+ c/AclQueue.cpp
+ c/AclTensor.cpp
+@@ -1049,4 +1049,4 @@ target_sources(
+ runtime/experimental/operators/CpuSub.cpp
+ runtime/experimental/operators/CpuTranspose.cpp
+ runtime/experimental/operators/CpuWinogradConv2d.cpp
+-)
+\ No newline at end of file
++)
new file mode 100644
@@ -0,0 +1,114 @@
+From 4350c56d14b7b68acd060d8331f3ade1fb74e167 Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 09:21:23 -0600
+Subject: [PATCH] Use ARM_COMPUTE_ENABLE_NEON in code for checking NEON support
+
+ENABLE_NEON is a flag used by the build systems. The flag is not used
+in code, instead ARM_COMPUTE_ENABLE_NEON is used everywhere.
+
+Drop the ENABLE_NEON compiler definition to prevent any accidental
+use in code.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I65f5e7411c99280e2dd8c187140909cefd1c6892
+---
+ Android.bp | 1 -
+ BUILD.bazel | 1 -
+ SConscript | 2 +-
+ SConstruct | 2 +-
+ cmake/Options.cmake | 6 +-----
+ scripts/generate_android_bp.py | 1 -
+ 6 files changed, 3 insertions(+), 10 deletions(-)
+
+diff --git a/Android.bp b/Android.bp
+index 69379472b0..9288bba2d4 100644
+--- a/Android.bp
++++ b/Android.bp
+@@ -157,7 +157,6 @@ arm_compute_library_defaults {
+ "-DEMBEDDED_KERNELS",
+ "-DARM_COMPUTE_ASSERTS_ENABLED",
+ "-DARM_COMPUTE_CPP_SCHEDULER",
+- "-DENABLE_NEON",
+ "-DARM_COMPUTE_ENABLE_NEON",
+ "-Wno-unused-parameter",
+ "-DNO_DOT_IN_TOOLCHAIN",
+diff --git a/BUILD.bazel b/BUILD.bazel
+index f553b7bfad..2262a09655 100644
+--- a/BUILD.bazel
++++ b/BUILD.bazel
+@@ -170,7 +170,6 @@ config_setting(
+ cc_library(
+ name = "common_defines",
+ defines = [
+- "ENABLE_NEON",
+ "ARM_COMPUTE_CPU_ENABLED",
+ "ARM_COMPUTE_ENABLE_NEON",
+ "ARM_COMPUTE_ENABLE_I8MM",
+diff --git a/SConscript b/SConscript
+index 12e8fd1025..69a564873f 100644
+--- a/SConscript
++++ b/SConscript
+@@ -97,7 +97,7 @@ def build_multiisa_lib_objects():
+
+ # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make
+ # sure the environment is progated to the validation suite
+- arm_compute_env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON',
++ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON',
+ 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16',
+ 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM'])
+
+diff --git a/SConstruct b/SConstruct
+index 8d7bd291e8..7381300fc8 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -302,7 +302,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64':
+ print("ERROR: armv7a architecture has only 32-bit execution state")
+ Exit(1)
+
+-env.Append(CPPDEFINES = ['ENABLE_NEON', 'ARM_COMPUTE_ENABLE_NEON'])
++env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON'])
+
+ if 'sve' in env['arch']:
+ env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE'])
+diff --git a/cmake/Options.cmake b/cmake/Options.cmake
+index 5d685be48d..121d527718 100644
+--- a/cmake/Options.cmake
++++ b/cmake/Options.cmake
+@@ -53,7 +53,6 @@ option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF)
+
+ option(ENABLE_NEON "Enable Arm® Neon™ support" ON)
+ option(ARM_COMPUTE_CPU_ENABLED "" ON)
+-option(ARM_COMPUTE_ENABLE_NEON "" ON)
+ option(ARM_COMPUTE_ENABLE_I8MM "" ON)
+ option(ENABLE_FP32_KERNELS "" ON)
+ option(ENABLE_QASYMM8_KERNELS "" ON)
+@@ -70,14 +69,11 @@ option(ENABLE_FP16_KERNELS "" OFF)
+ option(ARM_COMPUTE_ENABLE_FP16 "" OFF)
+
+ if(ENABLE_NEON)
+- add_definitions(-DENABLE_NEON)
++ add_definitions(-DARM_COMPUTE_ENABLE_NEON)
+ endif()
+ if(ARM_COMPUTE_CPU_ENABLED)
+ add_definitions(-DARM_COMPUTE_CPU_ENABLED)
+ endif()
+-if(ARM_COMPUTE_ENABLE_NEON)
+- add_definitions(-DARM_COMPUTE_ENABLE_NEON)
+-endif()
+ if(ARM_COMPUTE_ENABLE_FP16)
+ add_definitions(-DARM_COMPUTE_ENABLE_FP16)
+ endif()
+diff --git a/scripts/generate_android_bp.py b/scripts/generate_android_bp.py
+index d5b268f522..99a04e7071 100755
+--- a/scripts/generate_android_bp.py
++++ b/scripts/generate_android_bp.py
+@@ -94,7 +94,6 @@ arm_compute_library_defaults {
+ "-DEMBEDDED_KERNELS",
+ "-DARM_COMPUTE_ASSERTS_ENABLED",
+ "-DARM_COMPUTE_CPP_SCHEDULER",
+- "-DENABLE_NEON",
+ "-DARM_COMPUTE_ENABLE_NEON",
+ "-Wno-unused-parameter",
+ "-DNO_DOT_IN_TOOLCHAIN",
new file mode 100644
@@ -0,0 +1,197 @@
+From 92a881cebfee5504b188a046a96d39dd9361ddb1 Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 08:57:38 -0600
+Subject: [PATCH] Use ARM_COMPUTE_ENABLE_SVE in code for checking SVE support
+
+ENABLE_SVE is a flag used by the build systems. The flag used in code
+is ARM_COMPUTE_ENABLE_SVE. There are just a couple spots where the
+build system flag is used instead causing the need to define both.
+
+Switch these last users of ENABLE_SVE over to ARM_COMPUTE_ENABLE_SVE
+then drop the ENABLE_SVE definition to prevent any more instances
+being added in the future.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I00da7580c4520647b62c6989bc7fbdd5efc7935e
+---
+ BUILD.bazel | 3 ---
+ SConscript | 2 +-
+ SConstruct | 2 +-
+ .../batchnormalization/impl/SVE/fp16.cpp | 2 +-
+ .../batchnormalization/impl/SVE/fp32.cpp | 2 +-
+ tests/BUILD.bazel | 1 -
+ tests/validation/NEON/ActivationLayer.cpp | 24 +++++++++----------
+ tests/validation/NEON/ArithmeticAddition.cpp | 6 ++---
+ 8 files changed, 19 insertions(+), 23 deletions(-)
+
+diff --git a/BUILD.bazel b/BUILD.bazel
+index 2262a09655..c04a52e084 100644
+--- a/BUILD.bazel
++++ b/BUILD.bazel
+@@ -297,7 +297,6 @@ cc_library(
+ "//conditions:default": [],
+ }),
+ local_defines = [
+- "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE2",
+ "ARM_COMPUTE_ENABLE_BF16",
+@@ -348,7 +347,6 @@ cc_library(
+ "//conditions:default": [],
+ }),
+ local_defines = [
+- "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_BF16",
+ ],
+@@ -409,7 +407,6 @@ cc_library(
+ "//conditions:default": [],
+ }),
+ local_defines = [
+- "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_BF16",
+ ],
+diff --git a/SConscript b/SConscript
+index 69a564873f..c2ca549b71 100644
+--- a/SConscript
++++ b/SConscript
+@@ -98,7 +98,7 @@ def build_multiisa_lib_objects():
+ # note that ARM_COMPUTE_ENABLE_FP16 is enabled in update_data_type_layout_flags() to make
+ # sure the environment is progated to the validation suite
+ arm_compute_env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON',
+- 'ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16',
++ 'ARM_COMPUTE_ENABLE_SVE','ARM_COMPUTE_ENABLE_BF16',
+ 'ARM_COMPUTE_ENABLE_I8MM', 'ARM_COMPUTE_ENABLE_SVEF32MM'])
+
+ # Build all the common files for the base architecture
+diff --git a/SConstruct b/SConstruct
+index 7381300fc8..17f5615acf 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -305,7 +305,7 @@ if 'v7a' in env['estate'] and env['estate'] == '64':
+ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_NEON'])
+
+ if 'sve' in env['arch']:
+- env.Append(CPPDEFINES = ['ENABLE_SVE', 'ARM_COMPUTE_ENABLE_SVE'])
++ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE'])
+ if 'sve2' in env['arch']:
+ env.Append(CPPDEFINES = ['ARM_COMPUTE_ENABLE_SVE2'])
+
+diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp
+index 48caaa3e63..e07593312c 100644
+--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp
++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp16.cpp
+@@ -128,4 +128,4 @@ void fp16_sve_batch_normalization(ITensor *src,
+ }
+ } // namespace cpu
+ } // namespace arm_compute
+-#endif // ENABLE_SVE
++#endif // ARM_COMPUTE_ENABLE_SVE
+diff --git a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp
+index df4fbfe607..0d52d2c3c0 100644
+--- a/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp
++++ b/src/core/NEON/kernels/batchnormalization/impl/SVE/fp32.cpp
+@@ -128,4 +128,4 @@ void fp32_sve_batch_normalization(ITensor *src,
+ }
+ } // namespace cpu
+ } // namespace arm_compute
+-#endif // ENABLE_SVE
++#endif // ARM_COMPUTE_ENABLE_SVE
+diff --git a/tests/BUILD.bazel b/tests/BUILD.bazel
+index 7085f1facc..4b4be8b257 100644
+--- a/tests/BUILD.bazel
++++ b/tests/BUILD.bazel
+@@ -114,7 +114,6 @@ cc_binary(
+ }) +
+ select({
+ "//:sve_validation_flag": [
+- "ENABLE_SVE",
+ "ARM_COMPUTE_ENABLE_SVE",
+ ],
+ "//conditions:default": [],
+diff --git a/tests/validation/NEON/ActivationLayer.cpp b/tests/validation/NEON/ActivationLayer.cpp
+index 119d51808a..69a8b52354 100644
+--- a/tests/validation/NEON/ActivationLayer.cpp
++++ b/tests/validation/NEON/ActivationLayer.cpp
+@@ -73,11 +73,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI
+ switch(data_type)
+ {
+ case DataType::F16:
+-#if defined(ENABLE_SVE)
++#if defined(ARM_COMPUTE_ENABLE_SVE)
+ return RelativeTolerance<float>(0.25f);
+-#else // !defined(ENABLE_SVE)
++#else // !defined(ARM_COMPUTE_ENABLE_SVE)
+ return RelativeTolerance<float>(0.1f);
+-#endif // defined(ENABLE_SVE)
++#endif // defined(ARM_COMPUTE_ENABLE_SVE)
+ default:
+ return RelativeTolerance<float>(0.05f);
+ }
+@@ -85,11 +85,11 @@ RelativeTolerance<float> relative_tolerance(DataType data_type, ActivationLayerI
+ switch(data_type)
+ {
+ case DataType::F16:
+-#if defined(ENABLE_SVE)
++#if defined(ARM_COMPUTE_ENABLE_SVE)
+ return RelativeTolerance<float>(0.9f);
+-#else // !defined(ENABLE_SVE)
++#else // !defined(ARM_COMPUTE_ENABLE_SVE)
+ return RelativeTolerance<float>(0.01f);
+-#endif // defined(ENABLE_SVE)
++#endif // defined(ARM_COMPUTE_ENABLE_SVE)
+ default:
+ return RelativeTolerance<float>(0.00001f);
+ }
+@@ -117,11 +117,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI
+ switch(data_type)
+ {
+ case DataType::F16:
+-#if defined(ENABLE_SVE)
++#if defined(ARM_COMPUTE_ENABLE_SVE)
+ return AbsoluteTolerance<float>(0.25f);
+-#else // !defined(ENABLE_SVE)
++#else // !defined(ARM_COMPUTE_ENABLE_SVE)
+ return AbsoluteTolerance<float>(0.01f);
+-#endif // defined(ENABLE_SVE)
++#endif // defined(ARM_COMPUTE_ENABLE_SVE)
+ default:
+ return AbsoluteTolerance<float>(0.00001f);
+ }
+@@ -129,11 +129,11 @@ AbsoluteTolerance<float> absolute_tolerance(DataType data_type, ActivationLayerI
+ switch(data_type)
+ {
+ case DataType::F16:
+-#if defined(ENABLE_SVE)
++#if defined(ARM_COMPUTE_ENABLE_SVE)
+ return AbsoluteTolerance<float>(0.9f);
+-#else // !defined(ENABLE_SVE)
++#else // !defined(ARM_COMPUTE_ENABLE_SVE)
+ return AbsoluteTolerance<float>(0.01f);
+-#endif // defined(ENABLE_SVE)
++#endif // defined(ARM_COMPUTE_ENABLE_SVE)
+ default:
+ return AbsoluteTolerance<float>(0.00001f);
+ }
+diff --git a/tests/validation/NEON/ArithmeticAddition.cpp b/tests/validation/NEON/ArithmeticAddition.cpp
+index c0033daab0..bae8535ff3 100644
+--- a/tests/validation/NEON/ArithmeticAddition.cpp
++++ b/tests/validation/NEON/ArithmeticAddition.cpp
+@@ -48,11 +48,11 @@ namespace validation
+ using framework::dataset::make;
+ namespace
+ {
+-#if !defined(__aarch64__) || defined(ENABLE_SVE)
++#if !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE)
+ constexpr AbsoluteTolerance<float> tolerance_quant(1); /**< Tolerance value for comparing reference's output against implementation's output for quantized data types */
+-#else // !defined(__aarch64__) || defined(ENABLE_SVE)
++#else // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE)
+ constexpr AbsoluteTolerance<float> tolerance_quant(1);
+-#endif // !defined(__aarch64__) || defined(ENABLE_SVE)
++#endif // !defined(__aarch64__) || defined(ARM_COMPUTE_ENABLE_SVE)
+ const auto InPlaceDataSet = framework::dataset::make("InPlace", { false, true });
+ const auto OutOfPlaceDataSet = framework::dataset::make("InPlace", { false });
+ } // namespace
new file mode 100644
@@ -0,0 +1,167 @@
+From a3c7d6aefc289dcce6656fc6d9f9c8c9b1af8f0b Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 09:38:26 -0600
+Subject: [PATCH] Add source files at library definition time
+
+This allows for easier conditional disabling of these libraries.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I442aaa03060f2cb7db4ed0c1d93e64dbc223fdc6
+---
+ CMakeLists.txt | 20 ++++++++++----------
+ scripts/generate_build_files.py | 16 ++++------------
+ src/CMakeLists.txt | 16 ++++------------
+ 3 files changed, 18 insertions(+), 34 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e8bdf2af1a..4073e06b17 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,6 +46,12 @@ set(CMAKE_CXX_EXTENSIONS OFF)
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Options.cmake)
+ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Version.cmake)
++include(${CMAKE_CURRENT_SOURCE_DIR}/src/CMakeLists.txt)
++
++list(TRANSFORM ARM_COMPUTE_GRAPH_SOURCES PREPEND "src/")
++list(TRANSFORM ARM_COMPUTE_SVE_SOURCES PREPEND "src/")
++list(TRANSFORM ARM_COMPUTE_SVE2_SOURCES PREPEND "src/")
++list(TRANSFORM ARM_COMPUTE_SOURCES PREPEND "src/")
+
+ # Require at least gcc/g++ 11) CMAKE_CXX_COMPILER_VERSION OR
+ if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10.2 OR CMAKE_CXX_COMPILER_VERSION
+@@ -139,8 +145,7 @@ endif()
+
+ # ---------------------------------------------------------------------
+ # SVE Object Library
+-
+-add_library(arm_compute_sve OBJECT "")
++add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES})
+ target_compile_options(arm_compute_sve
+ PRIVATE "-march=armv8.2-a+sve+fp16+dotprod"
+ PRIVATE "-fPIC")
+@@ -162,8 +167,7 @@ target_include_directories(
+
+ # ---------------------------------------------------------------------
+ # SVE2 Object Library
+-
+-add_library(arm_compute_sve2 OBJECT "")
++add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES})
+ target_compile_options(arm_compute_sve2
+ PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod"
+ PRIVATE "-fPIC")
+@@ -187,7 +191,7 @@ target_include_directories(
+ # ---------------------------------------------------------------------
+ # Core Library
+
+-add_library(arm_compute "")
++add_library(arm_compute ${ARM_COMPUTE_SOURCES})
+ target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+ target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16)
+ target_compile_definitions(arm_compute PRIVATE ENABLE_SVE)
+@@ -216,7 +220,7 @@ target_link_libraries(
+ # ---------------------------------------------------------------------
+ # Graph Library
+
+-add_library(arm_compute_graph "")
++add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES})
+ target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+ target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE)
+ target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE)
+@@ -238,10 +242,6 @@ target_compile_options(arm_compute_graph PUBLIC ${COMMON_CXX_FLAGS})
+
+ add_library(ArmCompute::Graph ALIAS arm_compute_graph)
+
+-# ---------------------------------------------------------------------
+-# Library Target Sources
+-add_subdirectory(src)
+-
+ if(ARM_COMPUTE_BUILD_TESTING)
+ # ---------------------------------------------------------------------
+ # Validation Framework Library
+diff --git a/scripts/generate_build_files.py b/scripts/generate_build_files.py
+index 52a8cc14da..4c4a14623f 100644
+--- a/scripts/generate_build_files.py
++++ b/scripts/generate_build_files.py
+@@ -167,27 +167,19 @@ def build_from_template_cmake(srcs_graph, srcs_sve, srcs_sve2, srcs_core):
+
+ template = f"""{get_template_header()}
+
+-target_sources(
+- arm_compute_graph
+- PRIVATE
++set(ARM_COMPUTE_GRAPH_SOURCES
+ {line_separator.join(srcs_graph)}
+ )
+
+-target_sources(
+- arm_compute_sve
+- PRIVATE
++set(ARM_COMPUTE_SVE_SOURCES
+ {line_separator.join(srcs_sve)}
+ )
+
+-target_sources(
+- arm_compute_sve2
+- PRIVATE
++set(ARM_COMPUTE_SVE2_SOURCES
+ {line_separator.join(srcs_sve2)}
+ )
+
+-target_sources(
+- arm_compute
+- PRIVATE
++set(ARM_COMPUTE_SOURCES
+ {line_separator.join(srcs_core)}
+ )
+ """
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index f1b275532a..73871563e1 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -20,9 +20,7 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+
+-target_sources(
+- arm_compute_graph
+- PRIVATE
++set(ARM_COMPUTE_GRAPH_SOURCES
+ graph/DataLayerVisitor.cpp
+ graph/Graph.cpp
+ graph/GraphBuilder.cpp
+@@ -100,9 +98,7 @@ target_sources(
+ graph/printers/DotGraphPrinter.cpp
+ )
+
+-target_sources(
+- arm_compute_sve
+- PRIVATE
++set(ARM_COMPUTE_SVE_SOURCES
+ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_s8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/interleaves/sve_u8q_3x3_dot.cpp
+ core/NEON/kernels/arm_conv/depthwise/kernels/sme2_fp16_nhwc_3x3_s1_output2x2_mla_depthfirst/generic_direct.cpp
+@@ -331,9 +327,7 @@ target_sources(
+ cpu/kernels/softmax/generic/sve/impl_bf16.cpp
+ )
+
+-target_sources(
+- arm_compute_sve2
+- PRIVATE
++set(ARM_COMPUTE_SVE2_SOURCES
+ cpu/kernels/activation/generic/sve2/lut.cpp
+ cpu/kernels/activation/generic/sve2/qasymm8.cpp
+ cpu/kernels/activation/generic/sve2/qasymm8_signed.cpp
+@@ -356,9 +350,7 @@ target_sources(
+ cpu/kernels/softmax/generic/sve2/impl.cpp
+ )
+
+-target_sources(
+- arm_compute
+- PRIVATE
++set(ARM_COMPUTE_SOURCES
+ c/AclContext.cpp
+ c/AclOperator.cpp
+ c/AclQueue.cpp
new file mode 100644
@@ -0,0 +1,112 @@
+From cdb765df59d8ce5f388ac2a820b5da76eb8d610c Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 09:47:25 -0600
+Subject: [PATCH] Add CMake options for SVE, SVE2, and BF16 support
+
+These should be optional, add options for these. Remove the hard-coded
+definitions of these for the libraries. This also makes it so validation
+options are not needed, if SVE is enabled it will be validated.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I03182ac6ece843e813c027ef6a573cbba254dee9
+---
+ CMakeLists.txt | 19 -------------------
+ cmake/Options.cmake | 16 +++++++++++++---
+ 2 files changed, 13 insertions(+), 22 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4073e06b17..4d95fb1bfd 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,9 +149,6 @@ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES})
+ target_compile_options(arm_compute_sve
+ PRIVATE "-march=armv8.2-a+sve+fp16+dotprod"
+ PRIVATE "-fPIC")
+-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_BF16)
+-target_compile_definitions(arm_compute_sve PRIVATE ENABLE_SVE)
+-target_compile_definitions(arm_compute_sve PRIVATE ARM_COMPUTE_ENABLE_SVE)
+ target_include_directories(
+ arm_compute_sve
+ PUBLIC $<INSTALL_INTERFACE:include>
+@@ -171,10 +168,6 @@ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES})
+ target_compile_options(arm_compute_sve2
+ PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod"
+ PRIVATE "-fPIC")
+-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE2)
+-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_BF16)
+-target_compile_definitions(arm_compute_sve2 PRIVATE ENABLE_SVE)
+-target_compile_definitions(arm_compute_sve2 PRIVATE ARM_COMPUTE_ENABLE_SVE)
+ target_include_directories(
+ arm_compute_sve2
+ PUBLIC $<INSTALL_INTERFACE:include>
+@@ -193,9 +186,6 @@ target_include_directories(
+
+ add_library(arm_compute ${ARM_COMPUTE_SOURCES})
+ target_compile_options(arm_compute PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_BF16)
+-target_compile_definitions(arm_compute PRIVATE ENABLE_SVE)
+-target_compile_definitions(arm_compute PRIVATE ARM_COMPUTE_ENABLE_SVE)
+ target_include_directories(
+ arm_compute
+ PUBLIC $<INSTALL_INTERFACE:include>
+@@ -222,8 +212,6 @@ target_link_libraries(
+
+ add_library(arm_compute_graph ${ARM_COMPUTE_GRAPH_SOURCES})
+ target_compile_options(arm_compute_graph PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+-target_compile_definitions(arm_compute_graph PRIVATE ENABLE_SVE)
+-target_compile_definitions(arm_compute_graph PRIVATE ARM_COMPUTE_ENABLE_SVE)
+ # add_subdirectory(src/graph)
+
+ target_include_directories(
+@@ -268,13 +256,6 @@ if(ARM_COMPUTE_BUILD_TESTING)
+
+ add_executable(arm_compute_validation "")
+ target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+- if(ARM_COMPUTE_ENABLE_BF16_VALIDATION)
+- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_BF16)
+- endif()
+- if(ARM_COMPUTE_ENABLE_SVE_VALIDATION)
+- target_compile_definitions(arm_compute_validation PRIVATE ENABLE_SVE)
+- target_compile_definitions(arm_compute_validation PRIVATE ARM_COMPUTE_ENABLE_SVE)
+- endif()
+ add_subdirectory(tests/validation)
+ target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS})
+ set_target_properties(
+diff --git a/cmake/Options.cmake b/cmake/Options.cmake
+index 121d527718..5c23fcb490 100644
+--- a/cmake/Options.cmake
++++ b/cmake/Options.cmake
+@@ -48,11 +48,12 @@ set(ARM_COMPUTE_ARCH armv8-a CACHE STRING "Architecture to use")
+ # ---------------------------------------------------------------------
+ # Backends
+
+-option(ARM_COMPUTE_ENABLE_BF16_VALIDATION "" ON)
+-option(ARM_COMPUTE_ENABLE_SVE_VALIDATION "" OFF)
+-
+ option(ENABLE_NEON "Enable Arm® Neon™ support" ON)
++option(ENABLE_SVE "Enable Arm® SVE support" ON)
++option(ENABLE_SVE2 "Enable Arm® SVE2 support" ON)
++
+ option(ARM_COMPUTE_CPU_ENABLED "" ON)
++option(ARM_COMPUTE_ENABLE_BF16 "" ON)
+ option(ARM_COMPUTE_ENABLE_I8MM "" ON)
+ option(ENABLE_FP32_KERNELS "" ON)
+ option(ENABLE_QASYMM8_KERNELS "" ON)
+@@ -74,6 +75,15 @@ endif()
+ if(ARM_COMPUTE_CPU_ENABLED)
+ add_definitions(-DARM_COMPUTE_CPU_ENABLED)
+ endif()
++if(ENABLE_SVE)
++ add_definitions(-DARM_COMPUTE_ENABLE_SVE)
++endif()
++if(ENABLE_SVE2)
++ add_definitions(-DARM_COMPUTE_ENABLE_SVE2)
++endif()
++if(ARM_COMPUTE_ENABLE_BF16)
++ add_definitions(-DARM_COMPUTE_ENABLE_BF16)
++endif()
+ if(ARM_COMPUTE_ENABLE_FP16)
+ add_definitions(-DARM_COMPUTE_ENABLE_FP16)
+ endif()
new file mode 100644
@@ -0,0 +1,91 @@
+From ab5bf5b8f86337a31bfd48277650f583a040e658 Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 09:59:48 -0600
+Subject: [PATCH] Allow SVE and SVE2 support to be disabled in CMake
+
+Currently these are hard-coded as enabled. The SVE and SVE2 libraries
+are built unconditionally. These should only be built when SVE or
+SVE2 is available.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I176259f872a84f736028622694d65d4c5b57e379
+---
+ CMakeLists.txt | 25 ++++++++++++++++++-------
+ 1 file changed, 18 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 4d95fb1bfd..d233d6bc67 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -145,6 +145,7 @@ endif()
+
+ # ---------------------------------------------------------------------
+ # SVE Object Library
++if(ENABLE_SVE)
+ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES})
+ target_compile_options(arm_compute_sve
+ PRIVATE "-march=armv8.2-a+sve+fp16+dotprod"
+@@ -161,9 +162,11 @@ target_include_directories(
+ src/core/cpu/kernels/assembly
+ src/cpu/kernels/assembly
+ src/core/NEON/kernels/arm_gemm/merges)
++endif() # ENABLE_SVE
+
+ # ---------------------------------------------------------------------
+ # SVE2 Object Library
++if(ENABLE_SVE2)
+ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES})
+ target_compile_options(arm_compute_sve2
+ PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod"
+@@ -180,6 +183,7 @@ target_include_directories(
+ src/core/cpu/kernels/assembly
+ src/cpu/kernels/assembly
+ src/core/NEON/kernels/arm_gemm/merges)
++endif() # ENABLE_SVE2
+
+ # ---------------------------------------------------------------------
+ # Core Library
+@@ -203,9 +207,12 @@ target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS})
+ add_library(ArmCompute::Core ALIAS arm_compute)
+
+ # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so
+-target_link_libraries(
+- arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve>
+- PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>)
++if(ENABLE_SVE)
++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve>)
++endif()
++if(ENABLE_SVE2)
++ target_link_libraries(arm_compute PRIVATE $<TARGET_OBJECTS:arm_compute_sve2>)
++endif()
+
+ # ---------------------------------------------------------------------
+ # Graph Library
+@@ -263,8 +270,10 @@ if(ARM_COMPUTE_BUILD_TESTING)
+ "${CMAKE_BINARY_DIR}/validation")
+ target_link_libraries(
+ arm_compute_validation
+- PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework
+- arm_compute_sve)
++ PUBLIC arm_compute arm_compute_graph arm_compute_validation_framework)
++ if(ENABLE_SVE)
++ target_link_libraries(arm_compute_validation PUBLIC arm_compute_sve)
++ endif()
+ target_link_directories(arm_compute_validation PUBLIC tests)
+
+ # ---------------------------------------------------------------------
+@@ -299,8 +308,10 @@ if(ARM_COMPUTE_BUILD_EXAMPLES)
+ set_target_properties(
+ ${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+ "${CMAKE_BINARY_DIR}/examples")
+- target_link_libraries(${test_name} PUBLIC arm_compute
+- arm_compute_graph arm_compute_sve)
++ target_link_libraries(${test_name} PUBLIC arm_compute arm_compute_graph)
++ if(ENABLE_SVE)
++ target_link_libraries(${test_name} PUBLIC arm_compute_sve)
++ endif()
+ endforeach()
+
+ # NEON Examples
new file mode 100644
@@ -0,0 +1,86 @@
+From 416cffe2a75a4ec66a75e00bc00297f2f0187e0f Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Thu, 5 Dec 2024 10:05:03 -0600
+Subject: [PATCH] Allow ARMv7 builds using CMake
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: Ib6bae5820569a8eadd53afdfe31e611a3089140e
+---
+ CMakeLists.txt | 25 +++++++++++++++++--
+ .../fixtures/CpuGemmAssemblyDispatchFixture.h | 3 +++
+ 2 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d233d6bc67..4fc27553f3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -148,7 +148,7 @@ endif()
+ if(ENABLE_SVE)
+ add_library(arm_compute_sve OBJECT ${ARM_COMPUTE_SVE_SOURCES})
+ target_compile_options(arm_compute_sve
+- PRIVATE "-march=armv8.2-a+sve+fp16+dotprod"
++ PRIVATE "-march=${ARM_COMPUTE_ARCH}"
+ PRIVATE "-fPIC")
+ target_include_directories(
+ arm_compute_sve
+@@ -169,7 +169,7 @@ endif() # ENABLE_SVE
+ if(ENABLE_SVE2)
+ add_library(arm_compute_sve2 OBJECT ${ARM_COMPUTE_SVE2_SOURCES})
+ target_compile_options(arm_compute_sve2
+- PRIVATE "-march=armv8.6-a+sve2+fp16+dotprod"
++ PRIVATE "-march=${ARM_COMPUTE_ARCH}"
+ PRIVATE "-fPIC")
+ target_include_directories(
+ arm_compute_sve2
+@@ -204,6 +204,15 @@ target_include_directories(
+ src/core/NEON/kernels/convolution/winograd)
+ target_compile_options(arm_compute PUBLIC ${COMMON_CXX_FLAGS})
+
++if(ARM_COMPUTE_ARCH MATCHES "armv7")
++ target_sources(
++ arm_compute
++ PRIVATE
++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a53.cpp
++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/a55r1.cpp
++ src/core/NEON/kernels/arm_gemm/kernels/a32_sgemm_8x6/generic.cpp)
++endif()
++
+ add_library(ArmCompute::Core ALIAS arm_compute)
+
+ # arm_compute_sve and arm_compute_sve2 obj files will not be public in the arm_compute.so
+@@ -264,6 +273,18 @@ if(ARM_COMPUTE_BUILD_TESTING)
+ add_executable(arm_compute_validation "")
+ target_compile_options(arm_compute_validation PRIVATE "-march=${ARM_COMPUTE_ARCH}")
+ add_subdirectory(tests/validation)
++ target_include_directories(
++ arm_compute_validation
++ PUBLIC $<INSTALL_INTERFACE:include>
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
++ ${CMAKE_CURRENT_SOURCE_DIR}
++ PRIVATE src
++ src/cpu/kernels/assembly
++ src/core/NEON/kernels/arm_gemm
++ src/core/NEON/kernels/assembly
++ src/core/NEON/kernels/convolution/common
++ src/core/NEON/kernels/arm_conv/depthwise
++ src/core/NEON/kernels/convolution/winograd)
+ target_compile_options(arm_compute_validation PUBLIC ${COMMON_CXX_FLAGS})
+ set_target_properties(
+ arm_compute_validation PROPERTIES RUNTIME_OUTPUT_DIRECTORY
+diff --git a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h
+index 5d74e210d5..0b45cdf356 100644
+--- a/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h
++++ b/tests/validation/fixtures/CpuGemmAssemblyDispatchFixture.h
+@@ -25,7 +25,10 @@
+ #define ACL_TESTS_VALIDATION_FIXTURES_CPUGEMMASSEMBLYDISPATCHFIXTURE_H
+
+ #include "arm_compute/core/Helpers.h"
++
++#ifdef ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS
+ #include "arm_compute/runtime/NEON/functions/NEReorderLayer.h"
++#endif //ARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS
+ #include "arm_compute/runtime/NEON/functions/NETranspose.h"
+
+ #include "src/core/NEON/kernels/arm_gemm/utils.hpp"
new file mode 100644
@@ -0,0 +1,46 @@
+From 58698788adaeb2f74cf9fcddf06f3e9a2e78b984 Mon Sep 17 00:00:00 2001
+From: Andrew Davis <afd@ti.com>
+Date: Mon, 16 Dec 2024 09:42:22 -0600
+Subject: [PATCH] Fix undefined symbol error when building TensorInfo
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrew Davis <afd@ti.com>
+Change-Id: I657d1b7faaad94147c685c4826916d3c21da82e1
+---
+ arm_compute/core/TensorInfo.h | 5 +----
+ src/core/TensorInfo.cpp | 5 +++++
+ 2 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/arm_compute/core/TensorInfo.h b/arm_compute/core/TensorInfo.h
+index e4c9cbe879..2bfe83c4b1 100644
+--- a/arm_compute/core/TensorInfo.h
++++ b/arm_compute/core/TensorInfo.h
+@@ -242,10 +242,7 @@ public:
+ {
+ return _num_channels;
+ }
+- const TensorShape &tensor_shape() const override
+- {
+- return _tensor_shape;
+- }
++ const TensorShape &tensor_shape() const override;
+ const TensorDimsState &tensor_dims_state() const override
+ {
+ return _dims_state;
+diff --git a/src/core/TensorInfo.cpp b/src/core/TensorInfo.cpp
+index 31bddbde40..884203fd7c 100644
+--- a/src/core/TensorInfo.cpp
++++ b/src/core/TensorInfo.cpp
+@@ -395,6 +395,11 @@ ITensorInfo &TensorInfo::set_tensor_dims_state(const TensorDimsState &state)
+ return *this;
+ }
+
++const TensorShape &TensorInfo::tensor_shape() const
++{
++ return _tensor_shape;
++}
++
+ ITensorInfo &TensorInfo::set_quantization_info(const QuantizationInfo &quantization_info)
+ {
+ _quantization_info = quantization_info;
new file mode 100644
@@ -0,0 +1,79 @@
+SUMMARY = "The ARM Computer Vision and Machine Learning library"
+DESCRIPTION = "The ARM Computer Vision and Machine Learning library is a set of functions optimised for both ARM CPUs and GPUs."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=35f8944fae972976691f3483b0ac9dba"
+
+SRC_URI = " \
+ git://github.com/ARM-software/ComputeLibrary.git;branch=main;protocol=https \
+ file://0001-fix-Fix-indention-in-cmake-generator-script.patch \
+ file://0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch \
+ file://0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch \
+ file://0004-Add-source-files-at-library-definition-time.patch \
+ file://0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch \
+ file://0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch \
+ file://0007-Allow-ARMv7-builds-using-CMake.patch \
+ file://0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch \
+"
+SRCREV = "32bcced2af7feea6969dd1d22e58d0718dc488e3"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = "(arm|aarch64).*-linux"
+
+inherit cmake
+
+PACKAGECONFIG ??= "examples tests cppthreads openmp"
+
+PACKAGECONFIG[Werror] = "-DARM_COMPUTE_WERROR=ON,-DARM_COMPUTE_WERROR=OFF"
+PACKAGECONFIG[examples] = "-DARM_COMPUTE_BUILD_EXAMPLES=ON,-DARM_COMPUTE_BUILD_EXAMPLES=OFF"
+PACKAGECONFIG[tests] = "-DARM_COMPUTE_BUILD_TESTING=ON,-DARM_COMPUTE_BUILD_TESTING=OFF"
+PACKAGECONFIG[cppthreads] = "-DARM_COMPUTE_CPPTHREADS=ON,-DARM_COMPUTE_CPPTHREADS=OFF"
+PACKAGECONFIG[openmp] = "-DARM_COMPUTE_OPENMP=ON,-DARM_COMPUTE_OPENMP=OFF"
+
+EXTRA_OECMAKE:append:aarch64 = " \
+ -DARM_COMPUTE_ARCH=armv8-a \
+ -DENABLE_NEON=ON \
+ -DENABLE_SVE=OFF \
+ -DENABLE_SVE2=OFF \
+"
+EXTRA_OECMAKE:append:arm = " \
+ -DARM_COMPUTE_ARCH=armv7-a \
+ -DENABLE_NEON=ON \
+ -DENABLE_SVE=OFF \
+ -DENABLE_SVE2=OFF \
+ -DARM_COMPUTE_ENABLE_BF16=OFF \
+ -DARM_COMPUTE_ENABLE_FIXED_FORMAT_KERNELS=OFF \
+"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+# package unversioned .so files in PN (they are not dev symlinks)
+FILES_SOLIBSDEV = ""
+FILES:${PN} += "${libdir}/*.so"
+
+# Install headers and examples
+do_install:append() {
+ # Install headers
+ CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+ install -d ${D}${includedir}
+ cp $CP_ARGS ${S}/arm_compute ${D}${includedir}
+ cp $CP_ARGS ${S}/support ${D}${includedir}/support
+
+ # Install examples
+ if ${@bb.utils.contains('PACKAGECONFIG', 'examples', 'true', 'false', d)}; then
+ install -d ${D}${bindir}/${PN}-${PV}/examples
+ for example in ${B}/examples/*; do
+ if [ -d "$example" ]; then
+ continue
+ fi
+ case "$example" in
+ (*.o|*.a|*.cmake) continue;;
+ esac
+ install -m 0555 $example ${D}${bindir}/${PN}-${PV}/examples
+ done
+ fi
+}
+
+PACKAGES =+ "${PN}-tests ${PN}-examples"
+FILES:${PN}-tests += "${libdir}/tests"
+FILES:${PN}-examples += "${bindir}/*/examples"
@@ -61,6 +61,7 @@ TI_TEST_EXTRAS = " \
piglit \
python3-numpy \
wayland-utils \
+ arm-compute-library-tests \
"
TI_TEST_BASE:append:armv7a = " \
The Compute Library is a collection of low-level machine learning functions optimized for Arm. This will be used for ARMNN and other machine learning applications and frameworks. Signed-off-by: Andrew Davis <afd@ti.com> --- ...-indention-in-cmake-generator-script.patch | 130 ++++++++++++ ...ENABLE_NEON-in-code-for-checking-NEO.patch | 114 ++++++++++ ...ENABLE_SVE-in-code-for-checking-SVE-.patch | 197 ++++++++++++++++++ ...rce-files-at-library-definition-time.patch | 167 +++++++++++++++ ...ptions-for-SVE-SVE2-and-BF16-support.patch | 112 ++++++++++ ...SVE2-support-to-be-disabled-in-CMake.patch | 91 ++++++++ .../0007-Allow-ARMv7-builds-using-CMake.patch | 86 ++++++++ ...ymbol-error-when-building-TensorInfo.patch | 46 ++++ .../arm-compute-library_24.12.bb | 79 +++++++ .../recipes-core/packagegroups/ti-test.bb | 1 + 10 files changed, 1023 insertions(+) create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0001-fix-Fix-indention-in-cmake-generator-script.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0002-Use-ARM_COMPUTE_ENABLE_NEON-in-code-for-checking-NEO.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0003-Use-ARM_COMPUTE_ENABLE_SVE-in-code-for-checking-SVE-.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0004-Add-source-files-at-library-definition-time.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0005-Add-CMake-options-for-SVE-SVE2-and-BF16-support.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0006-Allow-SVE-and-SVE2-support-to-be-disabled-in-CMake.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0007-Allow-ARMv7-builds-using-CMake.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library/0008-Fix-undefined-symbol-error-when-building-TensorInfo.patch create mode 100644 meta-arago-extras/recipes-devtools/arm-compute-library/arm-compute-library_24.12.bb