Build: Refine RTX library selection

1. Only select one basing on CPU/Arch if it's not defined (by platforms)
2. Add checking library existence

Change-Id: Ibd4e5651f8e66173d0b07c881f4b4cba9d4d0216
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
diff --git a/lib/ext/CMSIS/CMakeLists.txt b/lib/ext/CMSIS/CMakeLists.txt
index 94365b3..b52f7f8 100644
--- a/lib/ext/CMSIS/CMakeLists.txt
+++ b/lib/ext/CMSIS/CMakeLists.txt
@@ -39,33 +39,34 @@
     message(FATAL_ERROR "${CMAKE_C_COMPILER_ID} does not have CMSIS RTX static libraries set up")
 endif()
 
-# Select RTX library according to cpu/arch type
-if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv6-m")
-    set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_CM3")
-elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.base")
-    set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_V8MBN")
-elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.main")
-    if(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
-        set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMFN")
-    else()
-        set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMN")
-    endif()
-elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
-    if("${CMAKE_C_COMPILER_ID}" STREQUAL "IAR")
-        set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V81MMN")
-    elseif(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
-        set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMFN")
-    else()
-        set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMN")
-    endif()
-elseif(TFM_SYSTEM_PROCESSOR STREQUAL "cortex-m4")
-    set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_CM3")
-endif()
-
 if(NOT DEFINED CMSIS_5_RTX_LIB)
-    message(FATAL_ERROR
-            "Unable to select CMSIS RTX library."
-            "Unsupported processor ${TFM_SYSTEM_PROCESSOR} or architecture ${TFM_SYSTEM_ARCHITECTURE}")
+    # Select RTX library according to cpu/arch if platform does not select one.
+    if(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv6-m")
+        set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_CM3")
+    elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.base")
+        set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_V8MBN")
+    elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8-m.main")
+        if(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
+            set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMFN")
+        else()
+            set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMN")
+        endif()
+    elseif(TFM_SYSTEM_ARCHITECTURE STREQUAL "armv8.1-m.main")
+        if("${CMAKE_C_COMPILER_ID}" STREQUAL "IAR")
+            set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V81MMN")
+        elseif(CONFIG_TFM_ENABLE_FP OR CONFIG_TFM_ENABLE_MVE_FP)
+            set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMFN")
+        else()
+            set(CMSIS_5_RTX_LIB     "CMSIS_5_RTX_V8MMN")
+        endif()
+    elseif(TFM_SYSTEM_PROCESSOR STREQUAL "cortex-m4")
+        set(CMSIS_5_RTX_LIB         "CMSIS_5_RTX_CM3")
+    else()
+        message(FATAL_ERROR
+                "CMSIS_5_RTX_LIB library is NOT defined."
+                "Unsupported processor ${TFM_SYSTEM_PROCESSOR} or architecture ${TFM_SYSTEM_ARCHITECTURE}."
+                "Specify it in build command or update TFM_SYSTEM_PROCESSOR/TFM_SYSTEM_ARCHITECTURE.")
+    endif()
 endif()
 
 add_library(RTX_OS INTERFACE)