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/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 9b0ce1a..4ad6fa5 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -214,6 +214,10 @@
                       << std::endl;
         }
     }
+
+    // Clear all dynamic backends.
+    DynamicBackendUtils::DeregisterDynamicBackends(m_DeviceSpec.GetDynamicBackends());
+    m_DeviceSpec.ClearDynamicBackends();
 }
 
 LoadedNetwork* Runtime::GetLoadedNetworkPtr(NetworkId networkId) const
@@ -273,7 +277,7 @@
     BackendIdSet registeredBackendIds = DynamicBackendUtils::RegisterDynamicBackends(m_DynamicBackends);
 
     // Add the registered dynamic backend ids to the list of supported backends
-    m_DeviceSpec.AddSupportedBackends(registeredBackendIds);
+    m_DeviceSpec.AddSupportedBackends(registeredBackendIds, true);
 }
 
 } // namespace armnn