Add DEPENDS parameter to unit_test_add_suite

By using this parameter extra target dependencies can be set for the
unit test suites. This allows binaries to be built or extra files to be
generated on which the test depends.

Change-Id: I2a707d8a3f8cee7b48a5e0d342a278e956f733b6
Signed-off-by: Imre Kis <imre.kis@arm.com>
diff --git a/cmake/UnitTest.cmake b/cmake/UnitTest.cmake
index fcd0f09..74f19a2 100644
--- a/cmake/UnitTest.cmake
+++ b/cmake/UnitTest.cmake
@@ -18,7 +18,7 @@
 function(unit_test_add_suite)
 	set(_OPTIONS_ARGS args1)
 	set(_ONE_VALUE_ARGS NAME)
-	set(_MULTI_VALUE_ARGS SOURCES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS)
+	set(_MULTI_VALUE_ARGS SOURCES INCLUDE_DIRECTORIES COMPILE_DEFINITIONS DEPENDS)
 	cmake_parse_arguments(_MY_PARAMS "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN})
 	# TODO: check_args(add_unit_test_suite args1 args2 args3)
 
@@ -31,6 +31,7 @@
 	set(TEST_NAME ${_MY_PARAMS_NAME})
 	set(TEST_INCLUDE_DIRECTORIES ${_MY_PARAMS_INCLUDE_DIRECTORIES})
 	set(TEST_COMPILE_DEFINITIONS ${_MY_PARAMS_COMPILE_DEFINITIONS})
+	set(TEST_DEPENDS ${_MY_PARAMS_DEPENDS})
 
 	add_executable(${TEST_NAME} ${UNIT_TEST_COMMON_SOURCES})
 
@@ -73,5 +74,8 @@
 
 	target_include_directories(${TEST_NAME} PRIVATE ${TEST_INCLUDE_DIRECTORIES})
 	target_compile_definitions(${TEST_NAME} PRIVATE ${TEST_COMPILE_DEFINITIONS})
+	if (TEST_DEPENDS)
+		add_dependencies(${TEST_NAME} ${TEST_DEPENDS})
+	endif()
 	add_test(${TEST_NAME} ${TEST_NAME})
 endfunction()