IVGCVSW-2735 Failure to find flatbuffers is not a fatal build error

!referencetests:176231

Change-Id: Ic8a641507c6af2f38e535b0208eb406e74a334a1
Signed-off-by: Ruomei Yan <ruomei.yan@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 003c9df..5aed983 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,12 +15,14 @@
     include(${cmake_file})
 endforeach()
 
+add_subdirectory(samples)
+add_subdirectory(src/armnnTfLiteParser)
+add_subdirectory(src/armnnSerializer)
+
 if (BUILD_TESTS)
     add_subdirectory(tests)
 endif()
 
-add_subdirectory(samples)
-
 # Include the additional cmake files in their own target so that they will appear nicely in IDEs
 add_custom_target(AdditionalCMakeFiles SOURCES ${additional_cmake_files})
 
@@ -131,60 +133,9 @@
     target_link_libraries(armnnTfParser ${PROTOBUF_LIBRARIES})
 endif()
 
-if(BUILD_TF_LITE_PARSER)
-    set(armnn_tf_lite_parser_sources)
-    list(APPEND armnn_tf_lite_parser_sources
-        include/armnnTfLiteParser/ITfLiteParser.hpp
-        src/armnnTfLiteParser/TfLiteParser.hpp
-        src/armnnTfLiteParser/TfLiteParser.cpp
-        )
-
-    add_library_ex(armnnTfLiteParser SHARED ${armnn_tf_lite_parser_sources})
-
-    target_include_directories(armnnTfLiteParser PRIVATE src/armnn)
-    target_include_directories(armnnTfLiteParser PRIVATE src/armnnUtils)
-    target_include_directories(armnnTfLiteParser SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
-
-    target_link_libraries(armnnTfLiteParser ${Boost_FILESYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY})
-    target_link_libraries(armnnTfLiteParser armnn ${FLATBUFFERS_LIBRARY})
-endif()
-
-if(BUILD_ARMNN_SERIALIZER)
-    file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/src/armnnSerializer/ArmnnSchema_generated.h)
-    add_custom_command (
-        OUTPUT  src/armnnSerializer/ArmnnSchema_generated.h
-        COMMAND ${FLATC_DIR}/flatc -o ${CMAKE_CURRENT_BINARY_DIR}/src/armnnSerializer --cpp
-                ${CMAKE_CURRENT_SOURCE_DIR}/src/armnnSerializer/ArmnnSchema.fbs
-    )
-
-    set(armnn_serializer_sources)
-    list(APPEND armnn_serializer_sources
-        include/armnnSerializer/ISerializer.hpp
-        include/armnnDeserializer/IDeserializer.hpp
-        src/armnnSerializer/ArmnnSchema_generated.h
-        src/armnnSerializer/Serializer.hpp
-        src/armnnSerializer/Serializer.cpp
-        src/armnnSerializer/SerializerUtils.hpp
-        src/armnnSerializer/SerializerUtils.cpp
-        src/armnnDeserializer/Deserializer.hpp
-        src/armnnDeserializer/Deserializer.cpp
-        )
-
-    add_library_ex(armnnSerializer SHARED ${armnn_serializer_sources})
-
-    target_include_directories(armnnSerializer PRIVATE src/armnn)
-    target_include_directories(armnnSerializer PRIVATE src/armnnUtils)
-
-    # System include to suppress warnings for flatbuffers generated files
-    target_include_directories(armnnSerializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/armnnSerializer)
-
-    target_link_libraries(armnnSerializer armnn ${FLATBUFFERS_LIBRARY})
-endif()
-
 if(BUILD_ARMNN_QUANTIZER)
-
     if(NOT BUILD_ARMNN_SERIALIZER)
-        message(ERROR, "In order to build the ArmNN Quantization Tool you must set BUILD_ARMNN_SERIALZER = YES")
+        message(ERROR, "In order to build the ArmNN Quantization Tool you must set BUILD_ARMNN_SERIALIZER = YES")
     endif()
 
     add_executable_ex(ArmnnQuantizer
@@ -192,7 +143,7 @@
         src/armnnQuantizer/CommandLineProcessor.cpp
         src/armnnQuantizer/ArmNNQuantizerMain.cpp)
 
-    target_include_directories(ArmnnQuantizer PRIVATE include/armnnDeserializeParser)
+    target_include_directories(ArmnnQuantizer PRIVATE include/armnnDeserializer)
 
     target_link_libraries(ArmnnQuantizer
             ${Boost_SYSTEM_LIBRARY}
@@ -430,12 +381,7 @@
 if(BUILD_TF_PARSER)
     install(TARGETS armnnTfParser DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
 endif()
-if(BUILD_TF_LITE_PARSER)
-    install(TARGETS armnnTfLiteParser DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
-endif()
-if(BUILD_ARMNN_SERIALIZER)
-    install(TARGETS armnnSerializer DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
-endif()
+
 install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include)
 
 target_link_libraries(armnn ${Boost_LOG_LIBRARY} ${Boost_THREAD_LIBRARY} ${Boost_SYSTEM_LIBRARY})
@@ -593,36 +539,35 @@
     if(BUILD_ARMNN_SERIALIZER)
         enable_language(ASM)
         list(APPEND unittest_sources
-                src/armnnSerializer/ArmnnSchema_generated.h
-                src/armnnSerializer/test/ActivationSerializationTests.cpp
-                src/armnnSerializer/test/SerializerTests.cpp
-                src/armnnDeserializer/test/DeserializeActivation.cpp
-                src/armnnDeserializer/test/DeserializeAdd.cpp
-                src/armnnDeserializer/test/DeserializeBatchToSpaceNd.cpp
-                src/armnnDeserializer/test/DeserializeBatchNormalization.cpp
-                src/armnnDeserializer/test/DeserializeConstant.cpp
-                src/armnnDeserializer/test/DeserializeConvolution2d.cpp
-                src/armnnDeserializer/test/DeserializeDivision.cpp
-                src/armnnDeserializer/test/DeserializeEqual.cpp
-                src/armnnDeserializer/test/DeserializeFloor.cpp
-                src/armnnDeserializer/test/DeserializeFullyConnected.cpp
-                src/armnnDeserializer/test/DeserializeGather.cpp
-                src/armnnDeserializer/test/DeserializeGreater.cpp
-                src/armnnDeserializer/test/DeserializeMean.cpp
-                src/armnnDeserializer/test/DeserializeMultiplication.cpp
-                src/armnnDeserializer/test/DeserializeNormalization.cpp
-                src/armnnDeserializer/test/DeserializePad.cpp
-                src/armnnDeserializer/test/DeserializePermute.cpp
-                src/armnnDeserializer/test/DeserializePooling2d.cpp
-                src/armnnDeserializer/test/DeserializeReshape.cpp
-                src/armnnDeserializer/test/DeserializeResizeBilinear.cpp
-                src/armnnDeserializer/test/DeserializeRsqrt.cpp
-                src/armnnDeserializer/test/DeserializeSpaceToBatchNd.cpp
-                src/armnnDeserializer/test/DeserializeStridedSlice.cpp
-                src/armnnDeserializer/test/DeserializeSubtraction.cpp
-                src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
-                src/armnnDeserializer/test/SchemaSerialize.s
-                )
+            src/armnnSerializer/test/ActivationSerializationTests.cpp
+            src/armnnSerializer/test/SerializerTests.cpp
+            src/armnnDeserializer/test/DeserializeActivation.cpp
+            src/armnnDeserializer/test/DeserializeAdd.cpp
+            src/armnnDeserializer/test/DeserializeBatchToSpaceNd.cpp
+            src/armnnDeserializer/test/DeserializeBatchNormalization.cpp
+            src/armnnDeserializer/test/DeserializeConstant.cpp
+            src/armnnDeserializer/test/DeserializeConvolution2d.cpp
+            src/armnnDeserializer/test/DeserializeDivision.cpp
+            src/armnnDeserializer/test/DeserializeEqual.cpp
+            src/armnnDeserializer/test/DeserializeFloor.cpp
+            src/armnnDeserializer/test/DeserializeFullyConnected.cpp
+            src/armnnDeserializer/test/DeserializeGather.cpp
+            src/armnnDeserializer/test/DeserializeGreater.cpp
+            src/armnnDeserializer/test/DeserializeMean.cpp
+            src/armnnDeserializer/test/DeserializeMultiplication.cpp
+            src/armnnDeserializer/test/DeserializeNormalization.cpp
+            src/armnnDeserializer/test/DeserializePad.cpp
+            src/armnnDeserializer/test/DeserializePermute.cpp
+            src/armnnDeserializer/test/DeserializePooling2d.cpp
+            src/armnnDeserializer/test/DeserializeReshape.cpp
+            src/armnnDeserializer/test/DeserializeResizeBilinear.cpp
+            src/armnnDeserializer/test/DeserializeRsqrt.cpp
+            src/armnnDeserializer/test/DeserializeSpaceToBatchNd.cpp
+            src/armnnDeserializer/test/DeserializeStridedSlice.cpp
+            src/armnnDeserializer/test/DeserializeSubtraction.cpp
+            src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
+            src/armnnDeserializer/test/SchemaSerialize.s
+            )
         set_source_files_properties(src/armnnDeserializer/test/SchemaSerialize.s PROPERTIES COMPILE_FLAGS "-x assembler-with-cpp")
     endif()
 
@@ -654,10 +599,6 @@
     target_include_directories(UnitTests PRIVATE src/armnnUtils)
     target_include_directories(UnitTests PRIVATE src/backends)
 
-    if(BUILD_TF_LITE_PARSER)
-        target_include_directories(UnitTests SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
-    endif()
-
     if(VALGRIND_FOUND)
         if(HEAP_PROFILING OR LEAK_CHECKING)
             message("Valgrind is disabled for heap profiling and leak checking builds.")
@@ -677,19 +618,22 @@
         target_link_libraries(UnitTests armnnTfParser)
     endif()
 
+    if(BUILD_TF_LITE_PARSER)
+        target_include_directories(UnitTests SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
+        target_include_directories(UnitTests SYSTEM PRIVATE "${FLATBUFFERS_INCLUDE_PATH}")
+        target_link_libraries(UnitTests armnnTfLiteParser)
+    endif()
+
     if(BUILD_CAFFE_PARSER)
         target_link_libraries(UnitTests armnnCaffeParser)
     endif()
 
     if(BUILD_ARMNN_SERIALIZER)
         target_include_directories(UnitTests SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/src/armnnSerializer)
+        target_include_directories(UnitTests SYSTEM PRIVATE "${FLATBUFFERS_INCLUDE_PATH}")
         target_link_libraries(UnitTests armnnSerializer)
     endif()
 
-    if(BUILD_TF_LITE_PARSER)
-        target_link_libraries(UnitTests armnnTfLiteParser)
-    endif()
-
     if(BUILD_ONNX_PARSER)
         target_link_libraries(UnitTests armnnOnnxParser)
     endif()
diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
index e0ccce4..892d937 100644
--- a/cmake/GlobalConfig.cmake
+++ b/cmake/GlobalConfig.cmake
@@ -179,8 +179,6 @@
                  HINTS ${FLATBUFFERS_ROOT}/lib /usr/local/lib /usr/lib)
 
     message(STATUS "Flatbuffers library located at: ${FLATBUFFERS_LIBRARY}")
-
-    include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
 endif()
 
 # Flatbuffers schema support for TF Lite
@@ -196,7 +194,6 @@
 endif()
 
 if(BUILD_ARMNN_SERIALIZER)
-    include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
     add_definitions(-DARMNN_SERIALIZER)
     add_definitions(-DARMNN_SERIALIZER_SCHEMA_PATH="${CMAKE_CURRENT_SOURCE_DIR}/src/armnnSerializer/ArmnnSchema.fbs")
 endif()
diff --git a/src/armnnSerializer/CMakeLists.txt b/src/armnnSerializer/CMakeLists.txt
new file mode 100755
index 0000000..bca36f9
--- /dev/null
+++ b/src/armnnSerializer/CMakeLists.txt
@@ -0,0 +1,37 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+if(BUILD_ARMNN_SERIALIZER)
+    file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/ArmnnSchema_generated.h)
+    add_custom_command (
+        OUTPUT  ArmnnSchema_generated.h
+        COMMAND ${FLATC_DIR}/flatc -o ${CMAKE_CURRENT_BINARY_DIR} --cpp
+                ${CMAKE_CURRENT_SOURCE_DIR}/ArmnnSchema.fbs
+    )
+
+    set(armnn_serializer_sources)
+    list(APPEND armnn_serializer_sources
+        ../../include/armnnSerializer/ISerializer.hpp
+        ../../include/armnnDeserializer/IDeserializer.hpp
+        ArmnnSchema_generated.h
+        Serializer.hpp
+        Serializer.cpp
+        SerializerUtils.hpp
+        SerializerUtils.cpp
+        ../armnnDeserializer/Deserializer.hpp
+        ../armnnDeserializer/Deserializer.cpp
+        )
+
+    add_library_ex(armnnSerializer SHARED ${armnn_serializer_sources})
+
+    include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
+    set_target_properties(armnnSerializer PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+    target_include_directories(armnnSerializer PRIVATE ../armnn)
+    target_include_directories(armnnSerializer PRIVATE ../armnnUtils)
+
+    # System include to suppress warnings for flatbuffers generated files
+    target_include_directories(armnnSerializer SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
+
+    target_link_libraries(armnnSerializer armnn ${FLATBUFFERS_LIBRARY})
+endif()
\ No newline at end of file
diff --git a/src/armnnTfLiteParser/CMakeLists.txt b/src/armnnTfLiteParser/CMakeLists.txt
new file mode 100755
index 0000000..2a6a0a1
--- /dev/null
+++ b/src/armnnTfLiteParser/CMakeLists.txt
@@ -0,0 +1,23 @@
+#
+# Copyright © 2017 Arm Ltd. All rights reserved.
+# SPDX-License-Identifier: MIT
+#
+if(BUILD_TF_LITE_PARSER)
+    set(armnn_tf_lite_parser_sources)
+    list(APPEND armnn_tf_lite_parser_sources
+        ../../include/armnnTfLiteParser/ITfLiteParser.hpp
+        TfLiteParser.hpp
+        TfLiteParser.cpp
+        )
+
+    add_library_ex(armnnTfLiteParser SHARED ${armnn_tf_lite_parser_sources})
+
+    include_directories(SYSTEM "${FLATBUFFERS_INCLUDE_PATH}")
+    set_target_properties(armnnTfLiteParser PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
+    target_include_directories(armnnTfLiteParser PRIVATE ../armnn)
+    target_include_directories(armnnTfLiteParser PRIVATE ../armnnUtils)
+    target_include_directories(armnnTfLiteParser SYSTEM PRIVATE "${TF_LITE_SCHEMA_INCLUDE_PATH}")
+
+    target_link_libraries(armnnTfLiteParser ${Boost_FILESYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY})
+    target_link_libraries(armnnTfLiteParser armnn ${FLATBUFFERS_LIBRARY})
+endif()
\ No newline at end of file