blob: 4c860968c1725d0e9214938a41be78faf42f8925 [file] [log] [blame]
Julian Hallebf3a562022-09-09 17:07:52 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8#-------------------------------------------------------------------------------
9# Fetch or use externally provided source tree
10#
11#-------------------------------------------------------------------------------
12if (DEFINED ENV{TS_TFA_PATH})
13 # Use externally provided source tree
14 set(TFA_SOURCE_DIR $ENV{TS_TFA_PATH} CACHE PATH "tf-a location" FORCE)
15else()
16 # Otherwise clone the tf-a repo
17 set(TFA_URL "https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" CACHE STRING "tf-a repository URL")
18 set(TFA_REFSPEC "v2.7.0" CACHE STRING "tf-a git refspec")
19 set(TFA_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/tf-a-src" CACHE PATH "Location of tf-a source")
20
21 # Checking git
22 find_program(GIT_COMMAND "git")
23 if (NOT GIT_COMMAND)
24 message(FATAL_ERROR "Please install git")
25 endif()
26
27 set(GIT_OPTIONS
28 GIT_REPOSITORY ${TFA_URL}
29 GIT_TAG ${TFA_REFSPEC}
30 GIT_SHALLOW FALSE
31 )
32
33 include(${TS_ROOT}/tools/cmake/common/LazyFetch.cmake REQUIRED)
34 LazyFetch_MakeAvailable(
35 DEP_NAME tf-a
36 FETCH_OPTIONS "${GIT_OPTIONS}"
37 SOURCE_DIR ${TFA_SOURCE_DIR}
38 )
39endif()
40
41#-------------------------------------------------------------------------------
42# Add tf-a as an external dependency
43#
44#-------------------------------------------------------------------------------
45function(add_tfa_dependency)
46 set(options )
47 set(oneValueArgs TARGET)
48 cmake_parse_arguments(MY_PARAMS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
49
50 if(NOT DEFINED MY_PARAMS_TARGET)
51 message(FATAL_ERROR "add_tf-a: mandatory parameter TARGET not defined!")
52 endif()
53
54 target_include_directories(${MY_PARAMS_TARGET} PRIVATE "${TFA_SOURCE_DIR}/include")
Julian Hall82ce62a2022-09-13 09:00:45 +010055 target_include_directories(${MY_PARAMS_TARGET} PRIVATE "${TFA_SOURCE_DIR}/include/arch/aarch64")
Julian Hallebf3a562022-09-09 17:07:52 +010056
57endfunction()