blob: a90e7b615c183a2a9a2b84b0e6a99dd1977b3ac1 [file] [log] [blame]
# Copyright 2020 NXP
#
# SPDX-License-Identifier: Apache-2.0
#
#
# Manually create project. mbedTLS has it's own CMakeLists.txt
#
PROJECT(mbedtls)
FILE(
GLOB
mbedtls_sources
mbed-crypto/library/*.c
mbed-crypto/library/*.h
mbed-crypto/include/mbedtls/*.h
)
IF(NOT WithHost_lpcxpresso55s_ns)
GET_FILENAME_COMPONENT(
full_path_psa_its_file
${CMAKE_CURRENT_SOURCE_DIR}/mbed-crypto/library/psa_its_file.c
ABSOLUTE
)
LIST(
REMOVE_ITEM
mbedtls_sources
"${full_path_psa_its_file}"
)
LIST(
APPEND
mbedtls_sources
mbed-crypto/port/sss_psa_its_file.c
)
ELSE()
GET_FILENAME_COMPONENT(
full_path_psa_crypto_file
${CMAKE_CURRENT_SOURCE_DIR}/mbed-crypto/library/psa_crypto.c
ABSOLUTE
)
LIST(
REMOVE_ITEM
mbedtls_sources
"${full_path_psa_crypto_file}"
)
GET_FILENAME_COMPONENT(
full_path_psa_crypto_slot_mgmt_file
${CMAKE_CURRENT_SOURCE_DIR}/mbed-crypto/library/psa_crypto_slot_management.c
ABSOLUTE
)
LIST(
REMOVE_ITEM
mbedtls_sources
"${full_path_psa_crypto_slot_mgmt_file}"
)
ENDIF()
IF(WithmbedTLS_ALT_A71CH)
FILE(
GLOB
mbedtls_alt
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/src/*.c
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/src/*.h
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/inc/*.h
)
ENDIF()
IF(WithmbedTLS_ALT_SSS)
FILE(
GLOB
mbedtls_alt
${CMAKE_SOURCE_DIR}/sss/plugin/mbedtls/*.c
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/src/*_alt.c
mbedtls/port/ksdk/ecp_curves_alt.c
)
ENDIF()
IF(WithmbedTLS_ALT_A71CH)
FILE(
GLOB
mbedtls_alt
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/src/*_alt.c
${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/src/*_alt_ax.c
#mbedtls/port/ksdk/ecp_curves_alt.c
)
ENDIF()
IF(WithKSDK)
FILE(
GLOB
mbed_port_sources
${CMAKE_SOURCE_DIR}/demos/tfm_port/*.c
${CMAKE_SOURCE_DIR}/demos/tfm_port/*.h
)
FILE(
GLOB
mbedtls_ksdk_sources
mbedtls/port/ksdk/ksdk_mbedtls.c
mbedtls/port/ksdk/ksdk_mbedtls.h
)
ENDIF()
IF(WithHost_Android)
ADD_LIBRARY(
${PROJECT_NAME} SHARED
${mbed_port_sources}
${mbedtls_ksdk_sources}
${mbedtls_sources}
${mbedtls_alt}
)
ELSE()
ADD_LIBRARY(
${PROJECT_NAME}
${mbed_port_sources}
${mbedtls_ksdk_sources}
${mbedtls_sources}
${mbedtls_alt}
)
ENDIF()
TARGET_INCLUDE_DIRECTORIES(
${PROJECT_NAME}
PUBLIC mbed-crypto/include
PUBLIC mbed-crypto/library
)
IF(WithKSDK)
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/demos/tfm_port)
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC mbedtls/port/ksdk)
IF(WithmbedTLS_ALT_A71CH)
TARGET_COMPILE_DEFINITIONS(
${PROJECT_NAME} PUBLIC MBEDTLS_CONFIG_FILE=\"a71ch_mbedtls_${KSDK_BoardName}_config.h\"
)
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/inc)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
smCom
SSS_APIs
)
ELSEIF(WithmbedTLS_ALT_SSS)
TARGET_COMPILE_DEFINITIONS(
${PROJECT_NAME} PUBLIC MBEDTLS_CONFIG_FILE=\"sss_mbedtls_${KSDK_BoardName}_config.h\"
)
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/sss/plugin/mbedtls)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
smCom
SSS_APIs
)
ELSE()
TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PUBLIC MBEDTLS_CONFIG_FILE=\"mbedcrypto_mcux_config.h\")
ENDIF()
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
board
_mmcau
)
ELSE() # KSDK
IF(WithmbedTLS_ALT_A71CH)
TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PUBLIC MBEDTLS_CONFIG_FILE=\"a71ch_mbedtls_x86_config.h\")
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/hostlib/hostLib/mbedtls/inc)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
smCom
SSS_APIs
)
ELSEIF(WithmbedTLS_ALT_SSS)
TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME} PUBLIC MBEDTLS_CONFIG_FILE=\"sss_mbedtls_x86_config.h\")
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/sss/plugin/mbedtls)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
smCom
SSS_APIs
)
ENDIF()
ENDIF()
IF(NOT WithHost_lpcxpresso55s_s)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
PSA_ALT
SSS_APIs
)
ENDIF()
TARGET_INCLUDE_DIRECTORIES(${PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/sss/plugin/psa/inc)
IF(
CMAKE_CXX_COMPILER
MATCHES
".*clang"
OR CMAKE_CXX_COMPILER_ID
STREQUAL
"AppleClang"
)
TARGET_COMPILE_OPTIONS(
${PROJECT_NAME}
PRIVATE -Wno-unused-function
PRIVATE -Wno-error=pointer-sign
PRIVATE -Wno-error=format
PRIVATE -Wno-format
PRIVATE -Wno-error=unused-const-variable
PRIVATE -Wno-unused-const-variable
)
ENDIF()
IF(
"${CMAKE_CXX_COMPILER_ID}"
MATCHES
"MSVC"
)
IF(NXPInternal)
TARGET_COMPILE_OPTIONS(
${PROJECT_NAME}
PRIVATE /wd4245 # '=': conversion from 'int' to 'mbedtls_mpi_uint', signed/unsigned misma
PRIVATE /wd4310 # cast truncates constant value
PRIVATE /wd4389 # '==': signed/unsigned mismatch
PRIVATE /wd4132 # const object should be initialized
PRIVATE /wd4127 # conditional expression is constant
PRIVATE /wd4701 # potentially uninitialized local variable
PRIVATE /wd4477 # 'printf' : format string '%d'
PRIVATE /wd4200 # nonstandard extension used
PRIVATE /wd4703 # potentially unintialized local pointer
)
ENDIF()
ENDIF()
IF(
"${CMAKE_CXX_COMPILER_ID}"
STREQUAL
"GNU"
)
TARGET_COMPILE_OPTIONS(
${PROJECT_NAME}
PRIVATE -Wno-unused-function
PRIVATE -Wno-error=pointer-sign
PRIVATE -Wno-error=format
PRIVATE -Wno-format
)
SET(GCC_VERSION_WITH_UNUSED_CONST 6.3.0)
IF(
GCC_VERSION_WITH_UNUSED_CONST
VERSION_LESS
CMAKE_CXX_COMPILER_VERSION
)
TARGET_COMPILE_OPTIONS(
${PROJECT_NAME}
PRIVATE -Wno-error=unused-const-variable
PRIVATE -Wno-unused-const-variable
)
ENDIF()
ENDIF()
IF(
"${CMAKE_CXX_COMPILER_ID}"
STREQUAL
"MSVC"
)
ADD_SUBDIRECTORY(mbed-crypto/tests)
ENDIF()