IVGCVSW-4212 Example of standalone dynamic reference backend

 * Add example to build dynamic reference backend
 * Add functions to clear dynamic backends
 * Fix the error when dynamic backend is not deregistered
 * Add DYARMNN_DYNAMIC_BACKEND_ENABLED to check disable empty
   dynamic backend when dynamic backend is enabled

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: I1ef3a3f10ed6ca5ec18d0af04b007fc3bc71a3cb
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.cpp b/src/backends/backendsCommon/DynamicBackendUtils.cpp
index ab0006d..f893458 100644
--- a/src/backends/backendsCommon/DynamicBackendUtils.cpp
+++ b/src/backends/backendsCommon/DynamicBackendUtils.cpp
@@ -310,6 +310,18 @@
     return dynamicBackends;
 }
 
+void DynamicBackendUtils::DeregisterDynamicBackends(const BackendIdSet& dynamicBackends)
+{
+    // Get a reference of the backend registry
+    BackendRegistry& backendRegistry = BackendRegistryInstance();
+
+    for (const auto& id : dynamicBackends)
+    {
+        backendRegistry.Deregister(id);
+    }
+
+}
+
 BackendIdSet DynamicBackendUtils::RegisterDynamicBackends(const std::vector<DynamicBackendPtr>& dynamicBackends)
 {
     // Get a reference of the backend registry