Modify external dependencies to use LazyFetch

Refactor external dependencies use the new module. This gives more
control over how external components is made available and allows
the environment to use pre-build binaries or pre-fetched content.
Moreover, passing parameters to external CMake build systems is made
more robust by using initial cache files.

Signed-off-by: Benedek Tomasik <benedek.tomasik@arm.com>
Signed-off-by: Gyorgy Szing <Gyorgy.Szing@arm.com>
Change-Id: I85d1990fc7697847307b0ca3a91052b35423d823
diff --git a/external/CppUTest/cpputest-init-cache.cmake.in b/external/CppUTest/cpputest-init-cache.cmake.in
new file mode 100644
index 0000000..b24f5de
--- /dev/null
+++ b/external/CppUTest/cpputest-init-cache.cmake.in
@@ -0,0 +1,21 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+set(CMAKE_INSTALL_PREFIX "@BUILD_INSTALL_DIR@" CACHE STRING "")
+set(CMAKE_TOOLCHAIN_FILE "@TS_EXTERNAL_LIB_TOOLCHAIN_FILE@" CACHE STRING "")
+set(MEMORY_LEAK_DETECTION OFF CACHE BOOL "")
+set(LONGLONG ON CACHE BOOL "")
+set(C++11 ON CACHE BOOL "")
+
+string(TOUPPER @CMAKE_CROSSCOMPILING@ CMAKE_CROSSCOMPILING) # CMake expects TRUE
+if (CMAKE_CROSSCOMPILING)
+	set(TESTS OFF CACHE BOOL "")
+	set(EXTENSIONS OFF BOOL "")
+	set(HAVE_FORK OFF CACHE BOOL "")
+	set(CPP_PLATFORM "armcc" CACHE STRING "")
+	set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE BOOL "")
+endif()