Remove use of ArmNN.hpp from other public headers

Also remove it from armnnSerializer and armnnUtils.

In general code within Arm NN should only include exactly what it needs.
This will help keep compile times down, and reduces the need for a
complete rebuild when anything in the public headers changes.

ArmNN.hpp should only be provided as a convenience for user code where the
user doesn't know enough of the API to decide which specific headers
they need.

Signed-off-by: Matthew Bentham <Matthew.Bentham@arm.com>
Change-Id: I4ffcaa7662af4f88a1babf2bf17d03da6f77d665
diff --git a/include/armnn/ILayerSupport.hpp b/include/armnn/ILayerSupport.hpp
index a2d3961..4522002 100644
--- a/include/armnn/ILayerSupport.hpp
+++ b/include/armnn/ILayerSupport.hpp
@@ -14,7 +14,6 @@
 #include <functional>
 #include <memory>
 #include <vector>
-#include "ArmNN.hpp"
 
 namespace armnn
 {
diff --git a/src/armnn/test/NetworkTests.cpp b/src/armnn/test/NetworkTests.cpp
index 5d1313f..ef270d9 100644
--- a/src/armnn/test/NetworkTests.cpp
+++ b/src/armnn/test/NetworkTests.cpp
@@ -5,8 +5,8 @@
 
 #include "GraphUtils.hpp"
 
-#include <armnn/ArmNN.hpp>
 #include <armnn/LayerVisitorBase.hpp>
+
 #include <Network.hpp>
 
 #include <boost/test/unit_test.hpp>
diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp
index aaf6aa9..6077d05 100644
--- a/src/armnnDeserializer/Deserializer.cpp
+++ b/src/armnnDeserializer/Deserializer.cpp
@@ -5,8 +5,11 @@
 
 #include "Deserializer.hpp"
 
-#include <armnn/ArmNN.hpp>
+#include <armnn/Descriptors.hpp>
 #include <armnn/Exceptions.hpp>
+#include <armnn/TypesUtils.hpp>
+#include <armnn/LstmParams.hpp>
+#include <armnn/QuantizedLstmParams.hpp>
 
 #include <armnnUtils/Permute.hpp>
 
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index be6fa64..91b6241 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -5,17 +5,18 @@
 
 #include "Serializer.hpp"
 
-#include "SerializerUtils.hpp"
-
-#include <armnn/ArmNN.hpp>
+#include <armnn/Descriptors.hpp>
+#include <armnn/LstmParams.hpp>
+#include <armnn/QuantizedLstmParams.hpp>
 
 #include <iostream>
 
 #include <boost/core/ignore_unused.hpp>
 #include <boost/numeric/conversion/cast.hpp>
-
 #include <flatbuffers/util.h>
 
+#include "SerializerUtils.hpp"
+
 using namespace armnn;
 namespace fb = flatbuffers;
 namespace serializer = armnnSerializer;
diff --git a/src/armnnSerializer/SerializerUtils.hpp b/src/armnnSerializer/SerializerUtils.hpp
index 16b83e3..4855333 100644
--- a/src/armnnSerializer/SerializerUtils.hpp
+++ b/src/armnnSerializer/SerializerUtils.hpp
@@ -4,8 +4,7 @@
 //
 #pragma once
 
-#include <armnn/ArmNN.hpp>
-
+#include <armnn/Types.hpp>
 #include <ArmnnSchema_generated.h>
 
 namespace armnnSerializer
diff --git a/src/armnnSerializer/test/ActivationSerializationTests.cpp b/src/armnnSerializer/test/ActivationSerializationTests.cpp
index 34e99f6..0362412 100644
--- a/src/armnnSerializer/test/ActivationSerializationTests.cpp
+++ b/src/armnnSerializer/test/ActivationSerializationTests.cpp
@@ -3,10 +3,13 @@
 // SPDX-License-Identifier: MIT
 //
 
-#include <armnnDeserializer/IDeserializer.hpp>
-#include <armnn/ArmNN.hpp>
+#include <armnn/Descriptors.hpp>
 #include <armnn/INetwork.hpp>
+#include <armnn/IRuntime.hpp>
+#include <armnnDeserializer/IDeserializer.hpp>
+
 #include "../Serializer.hpp"
+
 #include <sstream>
 
 #include <boost/core/ignore_unused.hpp>
diff --git a/src/armnnSerializer/test/SerializerTests.cpp b/src/armnnSerializer/test/SerializerTests.cpp
index 3e67cf0..2b13109 100644
--- a/src/armnnSerializer/test/SerializerTests.cpp
+++ b/src/armnnSerializer/test/SerializerTests.cpp
@@ -5,8 +5,11 @@
 
 #include "../Serializer.hpp"
 
-#include <armnn/ArmNN.hpp>
+#include <armnn/Descriptors.hpp>
 #include <armnn/INetwork.hpp>
+#include <armnn/TypesUtils.hpp>
+#include <armnn/LstmParams.hpp>
+#include <armnn/QuantizedLstmParams.hpp>
 #include <armnnDeserializer/IDeserializer.hpp>
 
 #include <random>
diff --git a/src/armnnUtils/ParserHelper.cpp b/src/armnnUtils/ParserHelper.cpp
index 88e5756..ca6e426 100644
--- a/src/armnnUtils/ParserHelper.cpp
+++ b/src/armnnUtils/ParserHelper.cpp
@@ -5,7 +5,7 @@
 
 #include "ParserHelper.hpp"
 
-// armnnUtils
+#include <armnn/Descriptors.hpp>
 #include <armnnUtils/Permute.hpp>
 
 #include <boost/format.hpp>
diff --git a/src/armnnUtils/ParserHelper.hpp b/src/armnnUtils/ParserHelper.hpp
index d85ce26..d634088 100644
--- a/src/armnnUtils/ParserHelper.hpp
+++ b/src/armnnUtils/ParserHelper.hpp
@@ -5,7 +5,10 @@
 
 #pragma once
 
-#include <armnn/ArmNN.hpp>
+#include <armnn/DescriptorsFwd.hpp>
+#include <armnn/TensorFwd.hpp>
+
+#include <set>
 
 namespace armnnUtils
 {
diff --git a/src/armnnUtils/QuantizeHelper.hpp b/src/armnnUtils/QuantizeHelper.hpp
index a7f68c5..061c459 100644
--- a/src/armnnUtils/QuantizeHelper.hpp
+++ b/src/armnnUtils/QuantizeHelper.hpp
@@ -5,7 +5,6 @@
 
 #pragma once
 
-#include <armnn/ArmNN.hpp>
 #include <armnn/TypesUtils.hpp>
 
 #include <Half.hpp>
diff --git a/src/armnnUtils/test/ParserHelperTest.cpp b/src/armnnUtils/test/ParserHelperTest.cpp
index 636e2bd..dc37450 100644
--- a/src/armnnUtils/test/ParserHelperTest.cpp
+++ b/src/armnnUtils/test/ParserHelperTest.cpp
@@ -5,9 +5,11 @@
 
 #include "../ParserHelper.hpp"
 
+#include <armnn/Tensor.hpp>
+#include <armnn/Types.hpp>
+
 #include <boost/test/unit_test.hpp>
 
-#include "armnn/Types.hpp"
 
 using namespace armnn;
 using namespace armnnUtils;