1#------------------------------------------------------------------------------- 2# Copyright (c) 2020-2021, Arm Limited. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8cmake_minimum_required(VERSION 3.21) 9 10project("CC312 Runtime Library" LANGUAGES C ASM) 11 12set(CC312_LIB_TARGET ${CC312_LIB_PREFIX}cc312) 13set(CC312_PAL_TARGET ${CC312_LIB_PREFIX}cc312_pal) 14set(CC312_CDMPU_TARGET ${CC312_LIB_PREFIX}cc312_cdmpu) 15set(CC312_MBEDTLS_API_TARGET ${CC312_LIB_PREFIX}cc312_mbedtls_api) 16set(CC312_PSA_DRIVER_API_TARGET ${CC312_LIB_PREFIX}cc312_psa_driver_api) 17 18# Add library targets for this project 19add_library(${CC312_LIB_TARGET} STATIC EXCLUDE_FROM_ALL) 20add_library(${CC312_PAL_TARGET} STATIC EXCLUDE_FROM_ALL) 21add_library(${CC312_CDMPU_TARGET} INTERFACE) 22 23# Library interface components 24add_library(${CC312_MBEDTLS_API_TARGET} STATIC EXCLUDE_FROM_ALL) 25add_library(${CC312_PSA_DRIVER_API_TARGET} STATIC EXCLUDE_FROM_ALL) 26 27add_subdirectory(codesafe) 28add_subdirectory(host) 29add_subdirectory(shared) 30 31# Platform depedency must be defined at this point scope 32if (NOT TARGET ${CC312_PLATFORM_DEPENDENCY}) 33 message(ERROR "CC312_PLATFORM_DEPENDENCY target is not available for CC-312") 34endif() 35 36########################## LIB ################################################# 37 38target_compile_definitions(${CC312_LIB_TARGET} 39 PRIVATE 40 DLLI_MAX_BUFF_SIZE=0x10000 41 CC_MNG_MIN_BACKUP_SIZE_IN_BYTES=512 42 CC_SUPPORT_PKA_64_16 43 INTERFACE 44 USE_MBEDTLS_CRYPTOCELL 45 $<$<OR:$<CONFIG:Debug>,$<CONFIG:relwithdebinfo>>:CC_PAL_MAX_LOG_LEVEL=3> 46 PUBLIC 47 CC_IOT 48) 49target_link_libraries(${CC312_LIB_TARGET} 50 PRIVATE 51 ${CC312_PAL_TARGET} 52 ${CC312_LIB_PREFIX}mbedcrypto 53 ${CC312_PLATFORM_DEPENDENCY} 54 INTERFACE 55 ${CC312_MBEDTLS_API_TARGET} 56) 57 58########################## PAL ################################################# 59 60target_compile_definitions(${CC312_PAL_TARGET} 61 PUBLIC 62 CC_IOT 63 INTERFACE 64 $<$<OR:$<CONFIG:Debug>,$<CONFIG:relwithdebinfo>>:CC_PAL_MAX_LOG_LEVEL=3> 65) 66 67target_link_libraries(${CC312_PAL_TARGET} 68 PRIVATE 69 ${CC312_PLATFORM_DEPENDENCY} 70) 71 72########################## CDMPU ############################################### 73 74target_link_libraries(${CC312_CDMPU_TARGET} 75 INTERFACE 76 ${CC312_PAL_TARGET} 77) 78 79target_compile_definitions(${CC312_CDMPU_TARGET} 80 INTERFACE 81 DLLI_MAX_BUFF_SIZE=0x10000 82 USE_MBEDTLS_CRYPTOCELL 83 CC_MNG_MIN_BACKUP_SIZE_IN_BYTES=512 84 CC_IOT 85 CC_SUPPORT_PKA_64_16 86) 87 88########################## DRIVER INTERFACE #################################### 89 90target_compile_definitions(${CC312_PSA_DRIVER_API_TARGET} 91 PUBLIC 92 MBEDTLS_PSA_CRYPTO_DRIVERS 93 PSA_CRYPTO_DRIVER_CC3XX 94) 95 96target_link_libraries(${CC312_PSA_DRIVER_API_TARGET} 97 PUBLIC 98 ${CC312_LIB_PREFIX}mbedcrypto 99 INTERFACE 100 ${CC312_LIB_TARGET} 101 PRIVATE 102 ${CC312_PLATFORM_DEPENDENCY} 103) 104 105target_link_libraries(${CC312_MBEDTLS_API_TARGET} 106 PUBLIC 107 ${CC312_LIB_PREFIX}mbedcrypto 108 INTERFACE 109 ${CC312_LIB_TARGET} 110 PRIVATE 111 ${CC312_PLATFORM_DEPENDENCY} 112) 113