Build: Decouple tf-m-tests config setting from TF-M repo

Move tf-m-tests specific config setting to tf-m-tests repo to decouple
tf-m-tests config from TF-M.
In the meantime, move tf-m-tests repo fetch operation during TF-M config
setting. Therefore, tf-m-tests specific config file is available when
TF-M config starts as tf-m-tests configs are coupled with those in TF-M.

Change-Id: I5dd7e382378990c6dfe7a5a148d0e12d7933d1a1
Signed-off-by: David Hu <david.hu@arm.com>
diff --git a/lib/ext/tf-m-tests/fetch_repo.cmake b/lib/ext/tf-m-tests/fetch_repo.cmake
new file mode 100644
index 0000000..47bce13
--- /dev/null
+++ b/lib/ext/tf-m-tests/fetch_repo.cmake
@@ -0,0 +1,46 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+# Set to not download submodules if that option is available
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.16.0")
+    cmake_policy(SET CMP0097 NEW)
+endif()
+
+include(FetchContent)
+set(FETCHCONTENT_QUIET FALSE)
+
+set(FETCHCONTENT_BASE_DIR ${CMAKE_BINARY_DIR}/lib/ext CACHE STRING "" FORCE)
+
+if ("${TFM_TEST_REPO_PATH}" STREQUAL "DOWNLOAD")
+    FetchContent_Declare(tfm_test_repo
+        GIT_REPOSITORY https://git.trustedfirmware.org/TF-M/tf-m-tests.git
+        GIT_TAG ${TFM_TEST_REPO_VERSION}
+        GIT_PROGRESS TRUE
+    )
+
+    FetchContent_GetProperties(tfm_test_repo)
+    if(NOT tfm_test_repo_POPULATED)
+        FetchContent_Populate(tfm_test_repo)
+        set(TFM_TEST_REPO_PATH ${tfm_test_repo_SOURCE_DIR} CACHE PATH "Path to TFM-TEST repo (or DOWNLOAD to fetch automatically" FORCE)
+    endif()
+endif()
+
+if ("${CMSIS_5_PATH}" STREQUAL DOWNLOAD)
+    set(CMSIS_5_PATH ${TFM_TEST_REPO_PATH}/CMSIS CACHE PATH "Path to CMSIS_5 (or DOWNLOAD to fetch automatically" FORCE)
+endif()
+
+if (NOT TFM_APP_PATH)
+    set(TFM_APP_PATH ${TFM_TEST_REPO_PATH}/app CACHE PATH "Path to TFM NS app" FORCE)
+endif()
+
+if (NOT TFM_TEST_PATH)
+    set(TFM_TEST_PATH ${TFM_TEST_REPO_PATH}/test CACHE PATH "Path to TFM tests" FORCE)
+endif()
+
+if (NOT TFM_NS_LOG_PATH)
+    set(TFM_NS_LOG_PATH ${TFM_TEST_REPO_PATH}/log CACHE PATH "Path to NS log" FORCE)
+endif()