Improve reusability of code that is defined out by cmake build paths

 * Added new ARMNN_STUB_PROFILING and ARMNN_DISABLE_DYNAMIC_BACKEND
   defines to replace BUILD_BARE_METAL and BUILD_EXECUTE_NETWORK_STATIC
 * Add new CMake variables to disable sample apps and dynamic backends
 * Improve BUILD_SHARED_LIBS CMake variable
 * Add new archive output location to various libraries so that the
   static libraries appear in the same location as the shared libraries
 * Fixes for bare metal build
 * Add ARMNN_DISABLE_FILE_SYSTEM defines to missing locations

Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Change-Id: I1db9a8f483e7134bd261294b35240cf21b150d45
diff --git a/CMakeLists.txt b/CMakeLists.txt
index edb1485..a20543b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -56,12 +56,15 @@
 
 add_subdirectory(profiling/common/src)
 add_subdirectory(profiling/client/src)
-
-add_subdirectory(samples)
+if(ARMNN_SAMPLE_APPS_ENABLED)
+    add_subdirectory(samples)
+endif()
 add_subdirectory(src/armnnTfLiteParser)
 add_subdirectory(src/armnnSerializer)
 add_subdirectory(src/armnnDeserializer)
-add_subdirectory(src/armnnTestUtils)
+if(BUILD_UNIT_TESTS)
+    add_subdirectory(src/armnnTestUtils)
+endif()
 
 if (BUILD_TESTS)
     add_subdirectory(tests)
@@ -456,14 +459,10 @@
     add_definitions(-DARMNN_TFLITE_OPAQUE_DELEGATE)
 endif()
 
-if(BUILD_BARE_METAL OR EXECUTE_NETWORK_STATIC)
-    add_library_ex(armnn STATIC ${armnn_sources})
+if (BUILD_SHARED_LIBS)
+    add_library_ex(armnn SHARED ${armnn_sources})
 else()
-    if (BUILD_SHARED_LIBS)
-        add_library_ex(armnn SHARED ${armnn_sources})
-    else()
-        add_library(armnn ${armnn_sources})
-    endif()
+    add_library(armnn STATIC ${armnn_sources})
 endif()
 
 target_compile_definitions(armnn PRIVATE "ARMNN_COMPILING_DLL")