COMPMID-2205: CL runtime context.

CL Interfaces implemented.
Concrete classes implemented.
One test (ActivationLayer) ported to the new interface.

Change-Id: I283808bec36ccfc2f13fe048c45cbbee698ce525
Signed-off-by: Pablo Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/1998
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/arm_compute/core/CL/CLHelpers.h b/arm_compute/core/CL/CLHelpers.h
index 16fe09f..1d647a8 100644
--- a/arm_compute/core/CL/CLHelpers.h
+++ b/arm_compute/core/CL/CLHelpers.h
@@ -34,6 +34,9 @@
 
 namespace arm_compute
 {
+class CLCoreRuntimeContext;
+class CLBuildOptions;
+
 enum class DataType;
 
 /** Max vector width of an OpenCL vector */
@@ -153,5 +156,15 @@
  * @return True if dummy work-items should be preferred to dispatch the NDRange
  */
 bool preferred_dummy_work_items_support(const cl::Device &device);
+
+/** Creates an opencl kernel
+ *
+ * @param[in] ctx         A context to be used to create the opencl kernel.
+ * @param[in] kernel_name The kernel name.
+ * @param[in] build_opts  The build options to be used for the opencl kernel compilation.
+ *
+ * @return An opencl kernel
+ */
+cl::Kernel create_opencl_kernel(CLCoreRuntimeContext *ctx, const std::string &kernel_name, const CLBuildOptions &build_opts);
 }
 #endif /* __ARM_COMPUTE_CLHELPERS_H__ */