1#-------------------------------------------------------------------------------
2# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7if (NOT DEFINED TGT)
8	message(FATAL_ERROR "mandatory parameter TGT is not defined.")
9endif()
10
11set(FFA_DIRECT_MSG_ROUTING_EXTENSION ON CACHE BOOL "Enable FF-A direct message routing extension")
12set(CFG_FFA_VERSION 0x00010001 CACHE STRING "The supported FF-A protocol's version: (major << 16) | minor")
13
14target_sources(${TGT} PRIVATE
15	"${CMAKE_CURRENT_LIST_DIR}/aarch64/ffa_syscalls_a64.S"
16	"${CMAKE_CURRENT_LIST_DIR}/ffa.c"
17	"${CMAKE_CURRENT_LIST_DIR}/ffa_interrupt_handler.c"
18	"${CMAKE_CURRENT_LIST_DIR}/ffa_memory_descriptors.c"
19	"${CMAKE_CURRENT_LIST_DIR}/sp_discovery.c"
20	"${CMAKE_CURRENT_LIST_DIR}/sp_memory_management.c"
21	"${CMAKE_CURRENT_LIST_DIR}/sp_messaging.c"
22	"${CMAKE_CURRENT_LIST_DIR}/sp_rxtx.c"
23	)
24
25set_property(TARGET ${TGT} APPEND PROPERTY PUBLIC_HEADER
26	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api.h
27	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api_defines.h
28	${CMAKE_CURRENT_LIST_DIR}/include/ffa_api_types.h
29	${CMAKE_CURRENT_LIST_DIR}/include/ffa_internal_api.h
30	${CMAKE_CURRENT_LIST_DIR}/include/ffa_memory_descriptors.h
31	${CMAKE_CURRENT_LIST_DIR}/include/sp_api.h
32	${CMAKE_CURRENT_LIST_DIR}/include/sp_api_defines.h
33	${CMAKE_CURRENT_LIST_DIR}/include/sp_api_types.h
34	${CMAKE_CURRENT_LIST_DIR}/include/sp_discovery.h
35	${CMAKE_CURRENT_LIST_DIR}/include/sp_memory_management.h
36	${CMAKE_CURRENT_LIST_DIR}/include/sp_messaging.h
37	${CMAKE_CURRENT_LIST_DIR}/include/sp_rxtx.h
38	)
39
40if (FFA_DIRECT_MSG_ROUTING_EXTENSION)
41	target_sources(${TGT} PRIVATE
42		"${CMAKE_CURRENT_LIST_DIR}/ffa_direct_msg_routing_extension.c"
43		)
44
45	target_compile_options(${TGT} PUBLIC
46		-DFFA_DIRECT_MSG_ROUTING_EXTENSION=1
47		)
48endif()
49
50target_compile_definitions(${TGT}
51	PUBLIC
52		"CFG_FFA_VERSION=${CFG_FFA_VERSION}"
53	)
54
55target_include_directories(${TGT}
56	 PUBLIC
57		"$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>"
58		"$<INSTALL_INTERFACE:${TS_ENV}/include>"
59	)
60