Fix embedded kernel header inclusion for dynamic fusion

Resolves: COMPMID-5155

Signed-off-by: Giorgio Arena <giorgio.arena@arm.com>
Change-Id: Ic16fb12bfa748cac92d73019d08eea53bf470c12
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/7354
Reviewed-by: SiCong Li <sicong.li@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
index 6e1291c..4c720ea 100644
--- a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
+++ b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/Common.h
@@ -27,6 +27,7 @@
 #define ARM_COMPUTE_EXPERIMENTAL_DYNAMICFUSION_IMPL_COMMON_H
 
 #include "arm_compute/core/CL/CLCompileContext.h"
+#include "arm_compute/core/CL/CLKernelLibrary.h"
 #include "arm_compute/core/Error.h"
 #include "arm_compute/core/GPUTarget.h"
 #include "src/core/common/Macros.h"
@@ -494,7 +495,11 @@
 
         for(auto &header : headers_list)
         {
+#if defined(EMBEDDED_KERNELS)
+            code += CLKernelLibrary::get().get_program(header).first;
+#else  // defined(EMBEDDED_KERNELS)
             code += "#include \"" + header + "\"\n";
+#endif // defined(EMBEDDED_KERNELS)
         }
 
         for(auto &macros : additional_macros)
diff --git a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/components/ClGemmNativeKernelComponent.cpp b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/components/ClGemmNativeKernelComponent.cpp
index 4bf0b76..7d23128 100644
--- a/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/components/ClGemmNativeKernelComponent.cpp
+++ b/src/core/experimental/dynamic_fusion/ClKernelBuildingImpl/components/ClGemmNativeKernelComponent.cpp
@@ -44,7 +44,7 @@
 
 std::set<std::string> ClGemmNativeKernelComponent::get_headers_list() const
 {
-    return std::set<std::string> { "./common/experimental/gemm_fused_post_ops/act_eltwise_op_act/fp_post_ops_act_eltwise_op_act.h", "gemm_helpers.h", "repeat.h" };
+    return std::set<std::string> { "common/experimental/gemm_fused_post_ops/act_eltwise_op_act/fp_post_ops_act_eltwise_op_act.h", "gemm_helpers.h", "repeat.h" };
 }
 
 Window ClGemmNativeKernelComponent::get_window() const
diff --git a/src/gpu/cl/ClKernelLibrary.cpp b/src/gpu/cl/ClKernelLibrary.cpp
index a5d37f4..5c17b43 100644
--- a/src/gpu/cl/ClKernelLibrary.cpp
+++ b/src/gpu/cl/ClKernelLibrary.cpp
@@ -587,6 +587,10 @@
 #include "./cl_kernels/common/gemm_utils.clembed"
     },
     {
+        "common/experimental/gemm_fused_post_ops/act_eltwise_op_act/fp_post_ops_act_eltwise_op_act.h",
+#include "./cl_kernels/common/experimental/gemm_fused_post_ops/act_eltwise_op_act/fp_post_ops_act_eltwise_op_act.hembed"
+    },
+    {
         "common/experimental/gemm_fused_post_ops/act_eltwise_op_act/gemm_mm_native.cl",
 #include "./cl_kernels/common/experimental/gemm_fused_post_ops/act_eltwise_op_act/gemm_mm_native.clembed"
     },
@@ -615,6 +619,10 @@
 #include "./cl_kernels/common/generate_proposals_quantized.clembed"
     },
     {
+        "gemm_helpers.h",
+#include "./cl_kernels/gemm_helpers.hembed"
+    },
+    {
         "helpers.h",
 #include "./cl_kernels/helpers.hembed"
     },
@@ -623,6 +631,10 @@
 #include "./cl_kernels/helpers_asymm.hembed"
     },
     {
+        "repeat.h",
+#include "./cl_kernels/repeat.hembed"
+    },
+    {
         "common/instance_normalization.cl",
 #include "./cl_kernels/common/instance_normalization.clembed"
     },