blob: 2a4a502d258b6d016d60c642af820ebe2e5483f8 [file] [log] [blame]
Imre Kis2cfb2b42021-12-15 19:15:42 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2020-2022, Arm Limited and Contributors. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
Gyorgy Szingb8d6f262023-06-05 12:36:02 +02008# Check mandatory variables.
9foreach(_var IN ITEMS TGT TRACE_PREFIX SP_HEAP_SIZE SP_STACK_SIZE SP_UUID_CANON)
10 if (NOT DEFINED ${_var})
11 message(FATAL_ERROR "Mandatory parameter '${_var}' missing.")
12 endif()
13endforeach()
Imre Kis2cfb2b42021-12-15 19:15:42 +010014
Gyorgy Szingb8d6f262023-06-05 12:36:02 +020015ts_add_uuid_to_exe_name(TGT "${TGT}" UUID "${SP_UUID_CANON}" )
Imre Kis2cfb2b42021-12-15 19:15:42 +010016
17target_sources(${TGT} PRIVATE
18 "${CMAKE_CURRENT_LIST_DIR}/entry.S"
19 "${CMAKE_CURRENT_LIST_DIR}/sp_assert.c"
20 "${CMAKE_CURRENT_LIST_DIR}/sp_entry.c"
21 "${CMAKE_CURRENT_LIST_DIR}/sp_trace.c"
22)
23
24# Default trace level configuration, can be overwritten by setting the same
25# variable in the deployment specific file before including this file.
26set(TRACE_LEVEL "TRACE_LEVEL_ERROR" CACHE STRING "Trace level")
27
28target_compile_definitions(${TGT} PRIVATE
29 TRACE_LEVEL=${TRACE_LEVEL}
30 TRACE_PREFIX="${TRACE_PREFIX}"
31 SP_HEAP_SIZE=${SP_HEAP_SIZE}
32)
33
Julian Hall8ad60432022-08-15 14:11:47 +010034include(${TS_ROOT}/external/newlib/newlib.cmake)
Imre Kis2cfb2b42021-12-15 19:15:42 +010035
36target_link_libraries(${TGT} PRIVATE
37 stdlib::c
38)
39
40target_link_options(${TGT} PRIVATE
41 -Wl,--hash-style=sysv
42 -Wl,--as-needed
43 -Wl,--gc-sections
44)
45
46compiler_set_linker_script(TARGET ${TGT} FILE ${CMAKE_CURRENT_LIST_DIR}/sp.ld.S DEF ARM64=1 SP_STACK_SIZE=${SP_STACK_SIZE})