diff --git a/scripts/cmake/bare-metal-sources.cmake b/scripts/cmake/bare-metal-sources.cmake
index 98030d5..abca622 100644
--- a/scripts/cmake/bare-metal-sources.cmake
+++ b/scripts/cmake/bare-metal-sources.cmake
@@ -40,29 +40,9 @@
 
 if (ETHOS_U_NPU_ENABLED)
 
-    USER_OPTION(ETHOS_U_NPU_ID "Arm Ethos-U NPU IP (U55 or U65)"
-        "U55"
-        STRING)
-
-    if ((ETHOS_U_NPU_ID STREQUAL U55) OR (ETHOS_U_NPU_ID STREQUAL U65))
-        if (ETHOS_U_NPU_ID STREQUAL U55)
-            set(DEFAULT_NPU_MEM_MODE    "Shared_Sram")
-            set(DEFAULT_NPU_CONFIG_ID     "H128")
-        elseif(ETHOS_U_NPU_ID STREQUAL U65)
-            set(DEFAULT_NPU_MEM_MODE    "Dedicated_Sram")
-            set(DEFAULT_NPU_CONFIG_ID     "Y256")
-        endif()
-    else ()
-        message(FATAL_ERROR "Non compatible Ethos-U NPU processor ${ETHOS_U_NPU_ID}")
-    endif ()
-
-    USER_OPTION(ETHOS_U_NPU_MEMORY_MODE "Specifies the memory mode used in the Vela command."
-        "${DEFAULT_NPU_MEM_MODE}"
-        STRING)
-
-    USER_OPTION(ETHOS_U_NPU_CONFIG_ID "Specifies the configuration ID for the NPU."
-        "${DEFAULT_NPU_CONFIG_ID}"
-        STRING)
+    assert_defined(ETHOS_U_NPU_ID)
+    assert_defined(ETHOS_U_NPU_MEMORY_MODE)
+    assert_defined(ETHOS_U_NPU_CONFIG_ID)
 
     if (ETHOS_U_NPU_MEMORY_MODE STREQUAL Sram_Only)
 
@@ -140,11 +120,9 @@
     else ()
         set(DEFAULT_TA_CONFIG_FILE_PATH "${CMAKE_SCRIPTS_DIR}/timing_adapter/ta_config_u65_high_end.cmake")
     endif ()
-    USER_OPTION(TA_CONFIG_FILE "Path to the timing adapter configuration file"
-            ${DEFAULT_TA_CONFIG_FILE_PATH}
-            FILEPATH)
 
     # must be included after target subsystem CMake file
+    assert_defined(TA_CONFIG_FILE)
     include(${TA_CONFIG_FILE})
 endif()
 
diff --git a/scripts/cmake/common_user_options.cmake b/scripts/cmake/common_user_options.cmake
new file mode 100644
index 0000000..13c88d2
--- /dev/null
+++ b/scripts/cmake/common_user_options.cmake
@@ -0,0 +1,164 @@
+#----------------------------------------------------------------------------
+#  Copyright (c) 2021 Arm Limited. All rights reserved.
+#  SPDX-License-Identifier: Apache-2.0
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#----------------------------------------------------------------------------
+
+#----------------------------------------------------------------------------
+# This file should contain all the common user options for the application
+# For use case specific options, see individual usecase.cmake files under
+# each example use case.
+#----------------------------------------------------------------------------
+
+if (NOT DEFINED USER_OPTIONS_INCLUDED)
+    set(USER_OPTIONS_INCLUDED ON)
+else()
+    return()
+endif()
+
+message(STATUS "Assessing common user options...")
+
+set(CMAKE_TOOLCHAIN_DIR ${CMAKE_CURRENT_LIST_DIR}/toolchains)
+set(DEPENDENCY_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../dependencies)
+include(${CMAKE_CURRENT_LIST_DIR}/util_functions.cmake)
+
+USER_OPTION(LOG_LEVEL "Log level for the application"
+    LOG_LEVEL_INFO
+    STRING)
+
+USER_OPTION(TENSORFLOW_SRC_PATH "Path to the root of the tensor flow directory"
+    "${DEPENDENCY_ROOT_DIR}/tensorflow"
+    PATH)
+
+USER_OPTION(TARGET_PLATFORM "Target platform to execute evaluation application: mps3, simple_platform, native"
+    mps3
+    STRING)
+
+USER_OPTION(TARGET_SUBSYSTEM "Specify platform target subsystem: sse-300 or none"
+    sse-300
+    STRING)
+
+if (TARGET_PLATFORM STREQUAL native)
+    set(NPU_AVAILABLE OFF)
+else()
+    set(NPU_AVAILABLE ON)
+endif()
+
+USER_OPTION(ETHOS_U_NPU_ENABLED "If Arm Ethos-U NPU is enabled in the target system."
+    ${NPU_AVAILABLE}
+    BOOL)
+
+USER_OPTION(USE_CASE_BUILD "Optional. Defines the use-case to build from the available sources. By default, all use-cases are built."
+    all
+    STRING)
+
+USER_OPTION(CPU_PROFILE_ENABLED "Output CPU performance profiling information. Should be used only for MPS3 board."
+    OFF
+    BOOL)
+
+USER_OPTION(TENSORFLOW_LITE_MICRO_BUILD_TYPE "TensorFlow Lite Mirco build type (release/debug etc.)"
+    $<IF:$<CONFIG:RELEASE>,release_with_logs,debug>
+    STRING)
+
+USER_OPTION(TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS "Select if TPIP downloads should be cleaned before each build."
+    OFF
+    BOOL)
+
+USER_OPTION(TENSORFLOW_LITE_MICRO_CLEAN_BUILD "Select if clean target should be added to a list of targets"
+    ON
+    BOOL)
+
+if (NOT TARGET_PLATFORM STREQUAL native)
+
+    USER_OPTION(CMSIS_SRC_PATH
+        "Path to CMSIS-5 sources"
+        "${DEPENDENCY_ROOT_DIR}/cmsis"
+        PATH)
+
+    if (CMAKE_BUILD_TYPE STREQUAL Debug)
+        # For use with Arm compiler:
+        USER_OPTION(ARMCLANG_DEBUG_DWARF_LEVEL
+            "Dwarf conformance level for armclang toolchain"
+            "4" # Default = 4 (Arm-DS etc). For model debugger specify "3"
+            STRING)
+    endif()
+
+    # If we need NPU libraries:
+    if (ETHOS_U_NPU_ENABLED)
+        USER_OPTION(ETHOS_U_NPU_TIMING_ADAPTER_SRC_PATH
+            "Path to Ethos-U NPU timing adapter sources"
+            "${DEPENDENCY_ROOT_DIR}/core-software/drivers/timing_adapter"
+            PATH
+            )
+
+        USER_OPTION(ETHOS_U_NPU_DRIVER_SRC_PATH
+            "Path to Ethos-U NPU core driver sources"
+            "${DEPENDENCY_ROOT_DIR}/core-driver"
+            PATH
+            )
+
+        USER_OPTION(ETHOS_U_NPU_ID "Arm Ethos-U NPU IP (U55 or U65)"
+            "U55"
+            STRING)
+
+        if ((ETHOS_U_NPU_ID STREQUAL U55) OR (ETHOS_U_NPU_ID STREQUAL U65))
+            if (ETHOS_U_NPU_ID STREQUAL U55)
+                set(DEFAULT_NPU_MEM_MODE    "Shared_Sram")
+                set(DEFAULT_NPU_CONFIG_ID     "H128")
+            elseif(ETHOS_U_NPU_ID STREQUAL U65)
+                set(DEFAULT_NPU_MEM_MODE    "Dedicated_Sram")
+                set(DEFAULT_NPU_CONFIG_ID     "Y256")
+            endif()
+        else ()
+            message(FATAL_ERROR "Non compatible Ethos-U NPU processor ${ETHOS_U_NPU_ID}")
+        endif ()
+
+        USER_OPTION(ETHOS_U_NPU_MEMORY_MODE "Specifies the memory mode used in the Vela command."
+            "${DEFAULT_NPU_MEM_MODE}"
+            STRING)
+
+        USER_OPTION(ETHOS_U_NPU_CONFIG_ID "Specifies the configuration ID for the NPU."
+            "${DEFAULT_NPU_CONFIG_ID}"
+            STRING)
+
+        if (ETHOS_U_NPU_ID STREQUAL U55)
+            set(DEFAULT_TA_CONFIG_FILE_PATH "${CMAKE_CURRENT_LIST_DIR}/timing_adapter/ta_config_u55_high_end.cmake")
+        else ()
+            set(DEFAULT_TA_CONFIG_FILE_PATH "${CMAKE_CURRENT_LIST_DIR}/timing_adapter/ta_config_u65_high_end.cmake")
+        endif ()
+
+        USER_OPTION(TA_CONFIG_FILE "Path to the timing adapter configuration file"
+                ${DEFAULT_TA_CONFIG_FILE_PATH}
+                FILEPATH)
+    endif()
+endif()
+
+if (TARGET_PLATFORM STREQUAL mps3)
+    message(STATUS "Platform: MPS3 FPGA Prototyping Board or FVP")
+    set(DEFAULT_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_DIR}/bare-metal-gcc.cmake)
+elseif (TARGET_PLATFORM STREQUAL simple_platform)
+    message(STATUS "Platform: Simple platform with minimal peripherals")
+    set(DEFAULT_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_DIR}/bare-metal-gcc.cmake)
+elseif (TARGET_PLATFORM STREQUAL native)
+    message(STATUS "Platform: Native (Linux based x86_64/aarch64 system)")
+    set(DEFAULT_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_DIR}/native-gcc.cmake)
+else ()
+    message(FATAL_ERROR "Invalid platform specified: ${TARGET_PLATFORM}")
+endif ()
+
+if (NOT DEFINED CMAKE_TOOLCHAIN_FILE)
+    set(CMAKE_TOOLCHAIN_FILE ${DEFAULT_TOOLCHAIN_FILE}
+        CACHE FILEPATH "Toolchain file")
+endif()
+message(STATUS "Using CMAKE_TOOLCHAIN_FILE: ${CMAKE_TOOLCHAIN_FILE}")
diff --git a/scripts/cmake/native-sources.cmake b/scripts/cmake/native-sources.cmake
index 2a5b0ae..6ebf435 100644
--- a/scripts/cmake/native-sources.cmake
+++ b/scripts/cmake/native-sources.cmake
@@ -20,7 +20,7 @@
 
 if (ETHOS_U_NPU_ENABLED)
     message(WARNING "EthosU can't be enabled for native builds."
-                    "Use -DETHOS_U_NPU_ENABLED=0 flag for this target platform."
+                    "Use -DETHOS_U_NPU_ENABLED=OFF flag for this target platform."
                     "Overriding, disabling use of EthosU...")
     set(ETHOS_U_NPU_ENABLED OFF)
 endif()
diff --git a/scripts/cmake/source_gen_utils.cmake b/scripts/cmake/source_gen_utils.cmake
index 9d27b4d..ccce7e7 100644
--- a/scripts/cmake/source_gen_utils.cmake
+++ b/scripts/cmake/source_gen_utils.cmake
@@ -218,7 +218,7 @@
                 )
         # no input NPY data found => skip code generation.
         if(NOT input_data_files)
-            message(WARNING "No files were found to generated input data: ${input_dir}")
+            message(WARNING "No files were found to generate input data: ${input_dir}")
             break()
         endif()
 
diff --git a/scripts/cmake/tensorflow.cmake b/scripts/cmake/tensorflow.cmake
index 60f191f..8ebac28 100644
--- a/scripts/cmake/tensorflow.cmake
+++ b/scripts/cmake/tensorflow.cmake
@@ -19,30 +19,16 @@
 ProcessorCount(J)
 
 if (CMAKE_BUILD_TYPE STREQUAL Debug)
-    set(TENSORFLOW_LITE_MICRO_DEFAULT_BUILD_TYPE "debug")
     set(TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL "-O0")
     set(TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL "-O0")
 elseif (CMAKE_BUILD_TYPE STREQUAL Release)
-    set(TENSORFLOW_LITE_MICRO_DEFAULT_BUILD_TYPE "release_with_logs")
     set(TENSORFLOW_LITE_MICRO_CORE_OPTIMIZATION_LEVEL "-O3")
     set(TENSORFLOW_LITE_MICRO_KERNEL_OPTIMIZATION_LEVEL "-O3")
-elseif (NOT DEFINED TENSORFLOW_LITE_MICRO_BUILD_TYPE)
-    message(WARNING     "TENSORFLOW_LITE_MICRO_BUILD_TYPE is not set.")
-    message(FATAL_ERROR "Build type ${CMAKE_BUILD_TYPE} does not have a corresponding "
-                        "default to set TensorFlow build type")
 endif()
 
-USER_OPTION(TENSORFLOW_LITE_MICRO_BUILD_TYPE "TensorFlow Lite Mirco build type (release/debug etc.)"
-    ${TENSORFLOW_LITE_MICRO_DEFAULT_BUILD_TYPE}
-    STRING)
-
-USER_OPTION(TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS "Select if TPIP downloads should be cleaned before each build."
-    OFF
-    BOOL)
-
-USER_OPTION(TENSORFLOW_LITE_MICRO_CLEAN_BUILD "Select if clean target should be added to a list of targets"
-    ON
-    BOOL)
+assert_defined(TENSORFLOW_LITE_MICRO_BUILD_TYPE)
+assert_defined(TENSORFLOW_LITE_MICRO_CLEAN_DOWNLOADS)
+assert_defined(TENSORFLOW_LITE_MICRO_CLEAN_BUILD)
 
 if (CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
     set(TENSORFLOW_LITE_MICRO_TOOLCHAIN "armclang")
diff --git a/scripts/cmake/util_functions.cmake b/scripts/cmake/util_functions.cmake
index 06ae184..f9742f7 100644
--- a/scripts/cmake/util_functions.cmake
+++ b/scripts/cmake/util_functions.cmake
@@ -84,6 +84,15 @@
 
 endfunction()
 
+
+# Function to check if a variable is defined, and throw
+# an error if it is not.
+function(assert_defined var_name)
+    if (NOT DEFINED ${var_name})
+        message(FATAL_ERROR "ERROR: ${var_name} is undefined!")
+    endif()
+endfunction()
+
 # Function to get the path type for a variable
 # Args:
 #   path_var[in]:           path variable for which the cmake path type is requested
