1#-------------------------------------------------------------------------------
2# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8
9set(CPPUTEST_URL "https://github.com/cpputest/cpputest.git" CACHE STRING "CppUTest repository URL")
10set(CPPUTEST_REFSPEC "v3.8" CACHE STRING "CppUTest git refspec")
11set(CPPUTEST_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/CppUTest_install CACHE PATH "CppUTest installation directory")
12set(CPPUTEST_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/_deps/cpputest-src CACHE PATH "CppUTest source directory")
13set(CPPUTEST_BUILD_TYPE "Release" CACHE STRING "CppUTest build type")
14
15set(GIT_OPTIONS
16	GIT_REPOSITORY ${CPPUTEST_URL}
17	GIT_TAG ${CPPUTEST_REFSPEC}
18	GIT_SHALLOW FALSE
19	PATCH_COMMAND git stash
20	COMMAND git apply ${CMAKE_CURRENT_LIST_DIR}/cpputest-cmake-fix.patch
21	)
22
23include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
24LazyFetch_MakeAvailable(DEP_NAME CppUTest
25	FETCH_OPTIONS "${GIT_OPTIONS}"
26	INSTALL_DIR ${CPPUTEST_INSTALL_DIR}
27	PACKAGE_DIR ${CPPUTEST_INSTALL_DIR}/lib/CppUTest/cmake
28	CACHE_FILE "${TS_ROOT}/external/CppUTest/cpputest-init-cache.cmake.in"
29	SOURCE_DIR ${CPPUTEST_SOURCE_DIR}
30	)
31
32# CppUTest package files do not set include path properties on the targets.
33# Fix this here.
34foreach(_cpputest_target IN LISTS CppUTest_LIBRARIES)
35	if (TARGET	${_cpputest_target})
36		target_include_directories(${_cpputest_target} INTERFACE ${CppUTest_INCLUDE_DIRS})
37		target_compile_features(${_cpputest_target} INTERFACE cxx_std_11)
38	endif()
39endforeach()
40