GitHub #292 Move BackendRegistry.hpp to the public API

 * Moved to BackendRegistry.hpp include/armnn
 * Updated makefiles and sources accordingly

Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
Change-Id: I4d83abb581d523218a880c879fcf30c9611f7fd7
diff --git a/Android.mk b/Android.mk
index c91b43f..dbc999e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -78,6 +78,7 @@
 LOCAL_SRC_FILES := \
         $(ARMNN_BACKEND_SOURCES) \
         src/armnn/BackendHelper.cpp \
+        src/armnn/BackendRegistry.cpp \
         src/armnn/Descriptors.cpp \
         src/armnn/Exceptions.cpp \
         src/armnn/Graph.cpp \
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 005650f..b66ed5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -214,6 +214,7 @@
     include/armnn/ArmNN.hpp
     include/armnn/BackendHelper.hpp
     include/armnn/BackendId.hpp
+    include/armnn/BackendRegistry.hpp
     include/armnn/Conversion.hpp
     include/armnn/Deprecated.hpp
     include/armnn/Descriptors.hpp
@@ -355,6 +356,7 @@
     src/armnn/layers/SwitchLayer.hpp
     src/armnn/layers/TransposeConvolution2dLayer.cpp
     src/armnn/layers/TransposeConvolution2dLayer.hpp
+    src/armnn/BackendRegistry.cpp
     src/armnn/BackendSettings.hpp
     src/armnn/BackendHelper.cpp
     src/armnn/CompatibleTypes.hpp
diff --git a/src/backends/backendsCommon/BackendRegistry.hpp b/include/armnn/BackendRegistry.hpp
similarity index 100%
rename from src/backends/backendsCommon/BackendRegistry.hpp
rename to include/armnn/BackendRegistry.hpp
diff --git a/src/armnn/BackendHelper.cpp b/src/armnn/BackendHelper.cpp
index 2514038..673950e 100644
--- a/src/armnn/BackendHelper.cpp
+++ b/src/armnn/BackendHelper.cpp
@@ -4,8 +4,9 @@
 //
 
 #include <armnn/BackendHelper.hpp>
-#include "backendsCommon/BackendRegistry.hpp"
-#include "backendsCommon/IBackendInternal.hpp"
+#include <armnn/BackendRegistry.hpp>
+
+#include <backendsCommon/IBackendInternal.hpp>
 
 namespace armnn
 {
diff --git a/src/backends/backendsCommon/BackendRegistry.cpp b/src/armnn/BackendRegistry.cpp
similarity index 97%
rename from src/backends/backendsCommon/BackendRegistry.cpp
rename to src/armnn/BackendRegistry.cpp
index 7078304..45f73b8 100644
--- a/src/backends/backendsCommon/BackendRegistry.cpp
+++ b/src/armnn/BackendRegistry.cpp
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: MIT
 //
 
-#include "BackendRegistry.hpp"
+#include <armnn/BackendRegistry.hpp>
 #include <armnn/Exceptions.hpp>
 
 namespace armnn
diff --git a/src/armnn/LayerSupport.cpp b/src/armnn/LayerSupport.cpp
index 997b5f2..7b9ada9 100644
--- a/src/armnn/LayerSupport.cpp
+++ b/src/armnn/LayerSupport.cpp
@@ -2,11 +2,12 @@
 // Copyright © 2017 Arm Ltd. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
+
 #include <armnn/LayerSupport.hpp>
 #include <armnn/Optional.hpp>
 #include <armnn/ILayerSupport.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendInternal.hpp>
 
 #include <boost/assert.hpp>
diff --git a/src/armnn/LoadedNetwork.cpp b/src/armnn/LoadedNetwork.cpp
index 5e3e3f2..e9a3545 100644
--- a/src/armnn/LoadedNetwork.cpp
+++ b/src/armnn/LoadedNetwork.cpp
@@ -11,8 +11,9 @@
 #include "Profiling.hpp"
 #include "HeapProfiling.hpp"
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <backendsCommon/CpuTensorHandle.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IMemoryManager.hpp>
 #include <backendsCommon/MemCopyWorkload.hpp>
 #include <backendsCommon/MemSyncWorkload.hpp>
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 1339a6e..a708361 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -14,13 +14,13 @@
 
 #include <backendsCommon/CpuTensorHandle.hpp>
 #include <backendsCommon/WorkloadFactory.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendInternal.hpp>
 #include <backendsCommon/TensorHandleFactoryRegistry.hpp>
 
 #include <armnn/Exceptions.hpp>
 #include <armnn/Utils.hpp>
 #include <armnn/TypesUtils.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 #include <fcntl.h>
 #include <algorithm>
diff --git a/src/armnn/NetworkUtils.cpp b/src/armnn/NetworkUtils.cpp
index a3760a9..cfed668 100644
--- a/src/armnn/NetworkUtils.cpp
+++ b/src/armnn/NetworkUtils.cpp
@@ -8,8 +8,7 @@
 #include "SubgraphViewSelector.hpp"
 
 #include <armnn/Exceptions.hpp>
-
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 namespace armnn
 {
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 68975a2..c95b2c4 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -5,8 +5,8 @@
 #include "Runtime.hpp"
 
 #include <armnn/Version.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/DynamicBackendUtils.hpp>
 
diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
index 0c64280..9a305bf 100644
--- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
+++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
@@ -5,27 +5,29 @@
 
 #pragma once
 
+#include "Schema.hpp"
+
 #include <armnn/Descriptors.hpp>
 #include <armnn/IRuntime.hpp>
 #include <armnn/TypesUtils.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include "Schema.hpp"
+#include <armnnTfLiteParser/ITfLiteParser.hpp>
+
+#include <ResolveType.hpp>
+
+#include <test/TensorHelpers.hpp>
+
 #include <boost/filesystem.hpp>
 #include <boost/assert.hpp>
 #include <boost/format.hpp>
 
-#include "test/TensorHelpers.hpp"
-
-#include <ResolveType.hpp>
-#include "armnnTfLiteParser/ITfLiteParser.hpp"
-
-#include <backendsCommon/BackendRegistry.hpp>
-
 #include "flatbuffers/idl.h"
 #include "flatbuffers/util.h"
 #include "flatbuffers/flexbuffers.h"
 
 #include <schema_generated.h>
+
 #include <iostream>
 
 using armnnTfLiteParser::ITfLiteParser;
diff --git a/src/backends/README.md b/src/backends/README.md
index a75bc9c..4c59222 100644
--- a/src/backends/README.md
+++ b/src/backends/README.md
@@ -125,7 +125,7 @@
 apply specific optimizations to a given sub-graph.
 
 The Arm NN framework then creates instances of the IBackendInternal interface with the help of the
-[BackendRegistry](backendsCommon/BackendRegistry.hpp) singleton.
+[BackendRegistry](../../include/armnn/BackendRegistry.hpp) singleton.
 
 **Important:** the ```IBackendInternal``` object is not guaranteed to have a longer lifetime than
 the objects it creates. It is only intended to be a single entry point for the factory functions it has.
diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt
index fc36365..d494794 100644
--- a/src/backends/backendsCommon/CMakeLists.txt
+++ b/src/backends/backendsCommon/CMakeLists.txt
@@ -4,8 +4,6 @@
 #
 
 list(APPEND armnnBackendsCommon_sources
-    BackendRegistry.cpp
-    BackendRegistry.hpp
     CpuTensorHandle.cpp
     CpuTensorHandleFwd.hpp
     CpuTensorHandle.hpp
diff --git a/src/backends/backendsCommon/DynamicBackend.hpp b/src/backends/backendsCommon/DynamicBackend.hpp
index 34c0019..f888b1e 100644
--- a/src/backends/backendsCommon/DynamicBackend.hpp
+++ b/src/backends/backendsCommon/DynamicBackend.hpp
@@ -6,7 +6,8 @@
 #pragma once
 
 #include "IBackendInternal.hpp"
-#include "BackendRegistry.hpp"
+
+#include <armnn/BackendRegistry.hpp>
 
 #include <functional>
 #include <memory>
diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp
index 34e4cbe..31ad5cb 100644
--- a/src/backends/backendsCommon/WorkloadFactory.cpp
+++ b/src/backends/backendsCommon/WorkloadFactory.cpp
@@ -6,15 +6,14 @@
 #include "CpuTensorHandle.hpp"
 #include "WorkloadFactory.hpp"
 
-
 #include <Layer.hpp>
 #include <LayersFwd.hpp>
 
 #include <armnn/Types.hpp>
 #include <armnn/LayerSupport.hpp>
 #include <armnn/ILayerSupport.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/WorkloadFactory.hpp>
 #include <backendsCommon/IBackendInternal.hpp>
 #include <backendsCommon/test/WorkloadTestUtils.hpp>
diff --git a/src/backends/backendsCommon/common.mk b/src/backends/backendsCommon/common.mk
index de0da68..34040d6 100644
--- a/src/backends/backendsCommon/common.mk
+++ b/src/backends/backendsCommon/common.mk
@@ -8,7 +8,6 @@
 # file in the root of ArmNN
 
 COMMON_SOURCES := \
-    BackendRegistry.cpp \
     CpuTensorHandle.cpp \
     DynamicBackend.cpp \
     DynamicBackendUtils.cpp \
diff --git a/src/backends/backendsCommon/test/BackendRegistryTests.cpp b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
index 283caaf..e1ab7ec 100644
--- a/src/backends/backendsCommon/test/BackendRegistryTests.cpp
+++ b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
@@ -4,8 +4,8 @@
 //
 
 #include <armnn/Types.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendInternal.hpp>
 
 #include <boost/test/unit_test.hpp>
diff --git a/src/backends/backendsCommon/test/CommonTestUtils.hpp b/src/backends/backendsCommon/test/CommonTestUtils.hpp
index 58bd6b1..e96edc8 100644
--- a/src/backends/backendsCommon/test/CommonTestUtils.hpp
+++ b/src/backends/backendsCommon/test/CommonTestUtils.hpp
@@ -9,8 +9,9 @@
 #include <SubgraphView.hpp>
 #include <SubgraphViewSelector.hpp>
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <backendsCommon/CpuTensorHandle.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 
 #include <test/TestUtils.hpp>
 
@@ -73,4 +74,4 @@
                                    unsigned int channels,
                                    unsigned int height,
                                    unsigned int width,
-                                   armnn::DataLayout layout);
\ No newline at end of file
+                                   armnn::DataLayout layout);
diff --git a/src/backends/backendsCommon/test/DynamicBackendTests.hpp b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
index 4a7ab19..2615bdc 100644
--- a/src/backends/backendsCommon/test/DynamicBackendTests.hpp
+++ b/src/backends/backendsCommon/test/DynamicBackendTests.hpp
@@ -7,10 +7,10 @@
 
 #include <backendsCommon/DynamicBackend.hpp>
 #include <backendsCommon/DynamicBackendUtils.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/CpuTensorHandle.hpp>
 
 #include <armnn/ILayerSupport.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 #include <reference/workloads/RefConvolution2dWorkload.hpp>
 
diff --git a/src/backends/backendsCommon/test/MockBackend.cpp b/src/backends/backendsCommon/test/MockBackend.cpp
index 043b512..4fb692c 100644
--- a/src/backends/backendsCommon/test/MockBackend.cpp
+++ b/src/backends/backendsCommon/test/MockBackend.cpp
@@ -6,9 +6,10 @@
 #include "MockBackend.hpp"
 #include "MockBackendId.hpp"
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/IMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 
 #include <Optimizer.hpp>
 #include <SubgraphViewSelector.hpp>
diff --git a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
index a6e8356..7cb5ded 100644
--- a/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizeSubgraphViewTests.cpp
@@ -10,7 +10,7 @@
 #include <Graph.hpp>
 #include <Network.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 #include <boost/test/unit_test.hpp>
 
diff --git a/src/backends/cl/ClBackend.cpp b/src/backends/cl/ClBackend.cpp
index 95ffbc4..2528a45 100644
--- a/src/backends/cl/ClBackend.cpp
+++ b/src/backends/cl/ClBackend.cpp
@@ -10,9 +10,10 @@
 #include "ClLayerSupport.hpp"
 #include "ClTensorHandleFactory.hpp"
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <aclCommon/BaseMemoryManager.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/IMemoryManager.hpp>
 
diff --git a/src/backends/cl/ClLayerSupport.cpp b/src/backends/cl/ClLayerSupport.cpp
index f9540f2..be565a5 100644
--- a/src/backends/cl/ClLayerSupport.cpp
+++ b/src/backends/cl/ClLayerSupport.cpp
@@ -7,11 +7,11 @@
 #include "ClBackendId.hpp"
 
 #include <armnn/Descriptors.hpp>
+#include <armnn/BackendRegistry.hpp>
+
 #include <InternalTypes.hpp>
 #include <LayerSupportCommon.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
-
 #include <boost/core/ignore_unused.hpp>
 
 #if defined(ARMCOMPUTECL_ENABLED)
diff --git a/src/backends/cl/ClRegistryInitializer.cpp b/src/backends/cl/ClRegistryInitializer.cpp
index 4d6f5f4..8decd6f 100644
--- a/src/backends/cl/ClRegistryInitializer.cpp
+++ b/src/backends/cl/ClRegistryInitializer.cpp
@@ -5,7 +5,7 @@
 
 #include "ClBackend.hpp"
 
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 namespace
 {
diff --git a/src/backends/neon/NeonBackend.cpp b/src/backends/neon/NeonBackend.cpp
index 63529c9..5b00540 100644
--- a/src/backends/neon/NeonBackend.cpp
+++ b/src/backends/neon/NeonBackend.cpp
@@ -9,9 +9,10 @@
 #include "NeonLayerSupport.hpp"
 #include "NeonTensorHandleFactory.hpp"
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <aclCommon/BaseMemoryManager.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/IMemoryManager.hpp>
 
diff --git a/src/backends/neon/NeonLayerSupport.cpp b/src/backends/neon/NeonLayerSupport.cpp
index cc96f63..bc912ff 100644
--- a/src/backends/neon/NeonLayerSupport.cpp
+++ b/src/backends/neon/NeonLayerSupport.cpp
@@ -7,12 +7,12 @@
 #include "NeonBackendId.hpp"
 
 #include <armnn/Descriptors.hpp>
-#include <InternalTypes.hpp>
-#include <LayerSupportCommon.hpp>
 #include <armnn/Tensor.hpp>
 #include <armnn/Types.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
+#include <InternalTypes.hpp>
+#include <LayerSupportCommon.hpp>
 
 #include <boost/core/ignore_unused.hpp>
 
diff --git a/src/backends/neon/NeonRegistryInitializer.cpp b/src/backends/neon/NeonRegistryInitializer.cpp
index c74acae..fd2e84d 100644
--- a/src/backends/neon/NeonRegistryInitializer.cpp
+++ b/src/backends/neon/NeonRegistryInitializer.cpp
@@ -5,7 +5,7 @@
 
 #include "NeonBackend.hpp"
 
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 namespace
 {
diff --git a/src/backends/reference/RefBackend.cpp b/src/backends/reference/RefBackend.cpp
index 2b56416..10cd5e5 100644
--- a/src/backends/reference/RefBackend.cpp
+++ b/src/backends/reference/RefBackend.cpp
@@ -9,9 +9,10 @@
 #include "RefLayerSupport.hpp"
 #include "RefTensorHandleFactory.hpp"
 
+#include <armnn/BackendRegistry.hpp>
+
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/IMemoryManager.hpp>
-#include <backendsCommon/BackendRegistry.hpp>
 
 #include <Optimizer.hpp>
 
diff --git a/src/backends/reference/RefLayerSupport.cpp b/src/backends/reference/RefLayerSupport.cpp
index c65886b..5972158 100644
--- a/src/backends/reference/RefLayerSupport.cpp
+++ b/src/backends/reference/RefLayerSupport.cpp
@@ -12,8 +12,8 @@
 
 #include <armnn/Types.hpp>
 #include <armnn/Descriptors.hpp>
+#include <armnn/BackendRegistry.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/LayerSupportRules.hpp>
 #include <backendsCommon/test/WorkloadTestUtils.hpp>
 
diff --git a/src/backends/reference/RefRegistryInitializer.cpp b/src/backends/reference/RefRegistryInitializer.cpp
index 427c7f0..a06bd8d 100644
--- a/src/backends/reference/RefRegistryInitializer.cpp
+++ b/src/backends/reference/RefRegistryInitializer.cpp
@@ -5,7 +5,7 @@
 
 #include "RefBackend.hpp"
 
-#include <backendsCommon/BackendRegistry.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 namespace
 {
diff --git a/tests/DeepSpeechV1InferenceTest.hpp b/tests/DeepSpeechV1InferenceTest.hpp
old mode 100755
new mode 100644
diff --git a/tests/InferenceModel.hpp b/tests/InferenceModel.hpp
index 412476a..9e054c4 100644
--- a/tests/InferenceModel.hpp
+++ b/tests/InferenceModel.hpp
@@ -2,8 +2,11 @@
 // Copyright © 2017 Arm Ltd. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
+
 #pragma once
+
 #include <armnn/ArmNN.hpp>
+#include <armnn/BackendRegistry.hpp>
 
 #if defined(ARMNN_SERIALIZER)
 #include "armnnDeserializer/IDeserializer.hpp"
@@ -18,8 +21,6 @@
 #include <HeapProfiling.hpp>
 #include <TensorIOUtils.hpp>
 
-#include <backendsCommon/BackendRegistry.hpp>
-
 #include <boost/algorithm/string/join.hpp>
 #include <boost/exception/exception.hpp>
 #include <boost/exception/diagnostic_information.hpp>
diff --git a/tests/LstmCommon.hpp b/tests/LstmCommon.hpp
old mode 100755
new mode 100644