blob: 80e35b6628e4c3913ffe6d8ebcb56d634f2af0e2 [file] [log] [blame]
Boris Deletic08f48962020-10-28 12:42:58 +00001#-------------------------------------------------------------------------------
Raef Colesb8c93e32021-06-03 10:10:45 +01002# Copyright (c) 2020-2021, Arm Limited. All rights reserved.
Boris Deletic08f48962020-10-28 12:42:58 +00003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8if (NOT TFM_PARTITION_EXAMPLE)
9 return()
10endif()
11
12cmake_minimum_required(VERSION 3.15)
13cmake_policy(SET CMP0079 NEW)
14
Raef Colesb8c93e32021-06-03 10:10:45 +010015# The name of the target is required to be of the pattern
16# tfm_app_rot_partition_x or tfm_psa_rot_partition_x, as it affects how the
17# linker script will lay the partition in memory.
18add_library(tfm_app_rot_partition_example STATIC)
Boris Deletic08f48962020-10-28 12:42:58 +000019
Raef Colesb8c93e32021-06-03 10:10:45 +010020target_sources(tfm_app_rot_partition_example
Boris Deletic08f48962020-10-28 12:42:58 +000021 PRIVATE
22 tfm_example_partition.c
23)
24
Raef Colesb8c93e32021-06-03 10:10:45 +010025target_include_directories(tfm_app_rot_partition_example
Boris Deletic08f48962020-10-28 12:42:58 +000026 PRIVATE
27 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
28 ${CMAKE_BINARY_DIR}/generated/secure_fw/partitions/example_partition
29)
30
Raef Colesb8c93e32021-06-03 10:10:45 +010031target_link_libraries(tfm_app_rot_partition_example
Boris Deletic08f48962020-10-28 12:42:58 +000032 PRIVATE
33 tfm_secure_api
34 psa_interface
35 platform_s
Shawn Shan77ea2312021-06-17 14:58:53 +080036 tfm_sprt
Boris Deletic08f48962020-10-28 12:42:58 +000037)
38
39############################ Secure API ########################################
40
41target_sources(tfm_secure_api
Raef Colesb8c93e32021-06-03 10:10:45 +010042 INTERFACE
Boris Deletic08f48962020-10-28 12:42:58 +000043 ${CMAKE_CURRENT_SOURCE_DIR}/tfm_example_partition_secure_api.c
44)
45
46# The veneers give warnings about not being properly declared so they get hidden
47# to not overshadow _real_ warnings.
48set_source_files_properties(tfm_example_partition_secure_api.c
49 PROPERTIES
50 COMPILE_FLAGS -Wno-implicit-function-declaration
51)
52
53############################ Partition Defs ####################################
54
55target_link_libraries(tfm_partitions
56 INTERFACE
Raef Colesb8c93e32021-06-03 10:10:45 +010057 tfm_app_rot_partition_example
Boris Deletic08f48962020-10-28 12:42:58 +000058)
59
60target_compile_definitions(tfm_partition_defs
61 INTERFACE
62 TFM_PARTITION_EXAMPLE
63)