feat(unittests): add a unit test framework.

This patch adds all the infrastructure needed to run unit tests for
RMM, including a new variant for platform host, called `host_test`.

To build and run the tests:

cmake -DRMM_CONFIG=host_defcfg -DHOST_VARIANT=host_test \
  -DCMAKE_BUILD_TYPE=Debug -S ${RMM_SOURCE_DIR} -B ${RMM_BUILD_DIR}
cmake --build ${RMM_BUILD_DIR} -- run-unittests

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Change-Id: If16686e111d91c563f8e7281d4ee7ca2864125ae
diff --git a/toolchains/common.cmake b/toolchains/common.cmake
index 4d710fb..86d6fb6 100644
--- a/toolchains/common.cmake
+++ b/toolchains/common.cmake
@@ -11,7 +11,7 @@
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
 
-foreach(language IN ITEMS ASM C)
+foreach(language IN ITEMS ASM C CXX)
     string(APPEND CMAKE_${language}_FLAGS_INIT "-fno-common ")
     string(APPEND CMAKE_${language}_FLAGS_INIT "-fomit-frame-pointer ")
     string(APPEND CMAKE_${language}_FLAGS_INIT "-ffunction-sections ")
diff --git a/toolchains/fake_host/gnu.cmake b/toolchains/fake_host/gnu.cmake
index ca2f48f..70a1c34 100644
--- a/toolchains/fake_host/gnu.cmake
+++ b/toolchains/fake_host/gnu.cmake
@@ -12,6 +12,14 @@
     DOC "Path to gcc."
     REQUIRED)
 
+#
+# Needed to build CppUTest for unit tests
+#
+find_program(CMAKE_CXX_COMPILER
+    NAMES "g++"
+    DOC "Path to g++."
+    REQUIRED)
+
 set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
 
 string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--build-id=none ")
diff --git a/toolchains/fake_host/llvm.cmake b/toolchains/fake_host/llvm.cmake
index cb0f207..ad2ee5e 100644
--- a/toolchains/fake_host/llvm.cmake
+++ b/toolchains/fake_host/llvm.cmake
@@ -14,9 +14,10 @@
 
 set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
 
-foreach(language IN ITEMS ASM C)
+foreach(language IN ITEMS ASM C CXX)
     string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-unknown-warning-option ")
     string(APPEND CMAKE_${language}_FLAGS_INIT "-Wno-unused-function ")
+    string(APPEND CMAKE_${language}_FLAGS_INIT "-fPIC ")
 endforeach()
 
 string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--build-id=none ")