1
0
mirror of https://github.com/ARMmbed/mbedtls.git synced 2025-06-28 18:12:46 +08:00

TF-PSA-Crypto.cmake: TF-PSA-Cryto-ify the file

Signed-off-by: Ronald Cron <ronald.cron@arm.com>
This commit is contained in:
Ronald Cron 2024-07-20 14:56:49 +02:00
parent 31829a8abf
commit 9c8472624d

View File

@ -10,10 +10,10 @@
# directories. That way, a target linking to a library (using the # directories. That way, a target linking to a library (using the
# target_link_libraries command) inherits from the library PUBLIC include # target_link_libraries command) inherits from the library PUBLIC include
# directories and not from the PRIVATE ones. # directories and not from the PRIVATE ones.
# - MBEDTLS_TARGET_PREFIX: CMake targets are designed to be alterable by calling # - TF_PSA_CRYPTO_TARGET_PREFIX: CMake targets are designed to be alterable by
# CMake in order to avoid target name clashes, via the use of # calling CMake in order to avoid target name clashes, via the use of
# MBEDTLS_TARGET_PREFIX. The value of this variable is prefixed to the # TF_PSA_CRYPTO_TARGET_PREFIX. The value of this variable is prefixed to the
# mbedcrypto and apidoc targets. # tfpsacrypto and apidoc targets.
# #
# We specify a minimum requirement of 3.10.2, but for now use 3.5.1 here # We specify a minimum requirement of 3.10.2, but for now use 3.5.1 here
@ -38,35 +38,36 @@ cmake_policy(SET CMP0011 NEW)
cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0012 NEW)
if(TEST_CPP) if(TEST_CPP)
project("Mbed TLS" project("TF-PSA-Crypto"
LANGUAGES C CXX LANGUAGES C CXX
VERSION 4.0.0 VERSION 0.1.0
) )
else() else()
project("Mbed TLS" project("TF-PSA-Crypto"
LANGUAGES C LANGUAGES C
VERSION 4.0.0 VERSION 0.1.0
) )
endif() endif()
include(GNUInstallDirs) include(GNUInstallDirs)
# Determine if Mbed TLS is being built as a subproject using add_subdirectory() # Determine if TF-PSA-Crypto is being built as a subproject using add_subdirectory()
if(NOT DEFINED MBEDTLS_AS_SUBPROJECT) if(NOT DEFINED TF_PSA_CRYPTO_AS_SUBPROJECT)
set(MBEDTLS_AS_SUBPROJECT ON) set(TF_PSA_CRYPTO_AS_SUBPROJECT ON)
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(MBEDTLS_AS_SUBPROJECT OFF) set(TF_PSA_CRYPTO_AS_SUBPROJECT OFF)
endif() endif()
endif() endif()
# Set the project and framework root directory. # Set the project, Mbed TLS and framework root directory.
set(MBEDTLS_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(TF_PSA_CRYPTO_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(MBEDTLS_FRAMEWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/framework) set(MBEDTLS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
set(MBEDTLS_FRAMEWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../framework)
option(ENABLE_PROGRAMS "Build Mbed TLS programs." ON) option(ENABLE_PROGRAMS "Build TF-PSA-Crypto programs." ON)
option(UNSAFE_BUILD "Allow unsafe builds. These builds ARE NOT SECURE." OFF) option(UNSAFE_BUILD "Allow unsafe builds. These builds ARE NOT SECURE." OFF)
option(MBEDTLS_FATAL_WARNINGS "Compiler warnings treated as errors" ON) option(TF_PSA_CRYPTO_FATAL_WARNINGS "Compiler warnings treated as errors" ON)
if(CMAKE_HOST_WIN32) if(CMAKE_HOST_WIN32)
# N.B. The comment on the next line is significant! If you change it, # N.B. The comment on the next line is significant! If you change it,
# edit the sed command in prepare_release.sh that modifies # edit the sed command in prepare_release.sh that modifies
@ -92,21 +93,21 @@ string(REGEX MATCH "MSVC" CMAKE_COMPILER_IS_MSVC "${COMPILER_ID}")
# the test suites currently have compile errors with MSVC # the test suites currently have compile errors with MSVC
if(CMAKE_COMPILER_IS_MSVC) if(CMAKE_COMPILER_IS_MSVC)
option(ENABLE_TESTING "Build Mbed TLS tests." OFF) option(ENABLE_TESTING "Build TF-PSA-Crypto tests." OFF)
else() else()
option(ENABLE_TESTING "Build Mbed TLS tests." ON) option(ENABLE_TESTING "Build TF-PSA-Crypto tests." ON)
endif() endif()
option(USE_STATIC_MBEDTLS_LIBRARY "Build Mbed TLS static library." ON) option(USE_STATIC_TF_PSA_CRYPTO_LIBRARY "Build TF-PSA-Crypto static library." ON)
option(USE_SHARED_MBEDTLS_LIBRARY "Build Mbed TLS shared library." OFF) option(USE_SHARED_TF_PSA_CRYPTO_LIBRARY "Build TF-PSA-Crypto shared library." OFF)
option(LINK_WITH_PTHREAD "Explicitly link Mbed TLS library to pthread." OFF) option(LINK_WITH_PTHREAD "Explicitly link Mbed TLS library to pthread." OFF)
option(LINK_WITH_TRUSTED_STORAGE "Explicitly link Mbed TLS library to trusted_storage." OFF) option(LINK_WITH_TRUSTED_STORAGE "Explicitly link Mbed TLS library to trusted_storage." OFF)
set(mbedcrypto_target "${MBEDTLS_TARGET_PREFIX}mbedcrypto") set(mbedcrypto_target "${TF_PSA_CRYPTO_TARGET_PREFIX}mbedcrypto")
if (USE_STATIC_MBEDTLS_LIBRARY) if (USE_STATIC_TF_PSA_CRYPTO_LIBRARY)
set(mbedcrypto_static_target ${mbedcrypto_target}) set(mbedcrypto_static_target ${mbedcrypto_target})
endif() endif()
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) if(USE_STATIC_TF_PSA_CRYPTO_LIBRARY AND USE_SHARED_TF_PSA_CRYPTO_LIBRARY)
string(APPEND mbedcrypto_static_target "_static") string(APPEND mbedcrypto_static_target "_static")
endif() endif()
@ -126,18 +127,18 @@ if(NOT CMAKE_VERSION VERSION_LESS 3.15.0)
set(Python3_FIND_STRATEGY LOCATION) set(Python3_FIND_STRATEGY LOCATION)
find_package(Python3 COMPONENTS Interpreter) find_package(Python3 COMPONENTS Interpreter)
if(Python3_Interpreter_FOUND) if(Python3_Interpreter_FOUND)
set(MBEDTLS_PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) set(TF_PSA_CRYPTO_PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
endif() endif()
else() else()
find_package(PythonInterp 3) find_package(PythonInterp 3)
if(PYTHONINTERP_FOUND) if(PYTHONINTERP_FOUND)
set(MBEDTLS_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE}) set(TF_PSA_CRYPTO_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})
endif() endif()
endif() endif()
if(MBEDTLS_PYTHON_EXECUTABLE) if(TF_PSA_CRYPTO_PYTHON_EXECUTABLE)
# If 128-bit keys are configured for CTR_DRBG, display an appropriate warning # If 128-bit keys are configured for CTR_DRBG, display an appropriate warning
execute_process(COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/config.py -f ${CMAKE_CURRENT_SOURCE_DIR}/include/mbedtls/mbedtls_config.h get MBEDTLS_CTR_DRBG_USE_128_BIT_KEY execute_process(COMMAND ${TF_PSA_CRYPTO_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/config.py -f ${CMAKE_CURRENT_SOURCE_DIR}/include/mbedtls/mbedtls_config.h get MBEDTLS_CTR_DRBG_USE_128_BIT_KEY
RESULT_VARIABLE result) RESULT_VARIABLE result)
if(${result} EQUAL 0) if(${result} EQUAL 0)
message(WARNING ${CTR_DRBG_128_BIT_KEY_WARNING}) message(WARNING ${CTR_DRBG_128_BIT_KEY_WARNING})
@ -157,9 +158,9 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
FORCE) FORCE)
endif() endif()
# Make MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE into PATHs # Make TF_PSA_CRYPTO_CONFIG_FILE and TF_PSA_CRYPTO_USER_CONFIG_FILE into PATHs
set(MBEDTLS_CONFIG_FILE "" CACHE FILEPATH "Mbed TLS config file (overrides default).") set(TF_PSA_CRYPTO_CONFIG_FILE "" CACHE FILEPATH "TF-PSA-Crypto config file (overrides default).")
set(MBEDTLS_USER_CONFIG_FILE "" CACHE FILEPATH "Mbed TLS user config file (appended to default).") set(TF_PSA_CRYPTO_USER_CONFIG_FILE "" CACHE FILEPATH "TF-PSA-Crypto user config file (appended to default).")
# Create a symbolic link from ${base_name} in the binary directory # Create a symbolic link from ${base_name} in the binary directory
# to the corresponding path in the source directory. # to the corresponding path in the source directory.
@ -277,7 +278,7 @@ if(CMAKE_COMPILER_IS_MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /utf-8") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W3 /utf-8")
endif(CMAKE_COMPILER_IS_MSVC) endif(CMAKE_COMPILER_IS_MSVC)
if(MBEDTLS_FATAL_WARNINGS) if(TF_PSA_CRYPTO_FATAL_WARNINGS)
if(CMAKE_COMPILER_IS_MSVC) if(CMAKE_COMPILER_IS_MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX")
endif(CMAKE_COMPILER_IS_MSVC) endif(CMAKE_COMPILER_IS_MSVC)
@ -294,7 +295,7 @@ if(MBEDTLS_FATAL_WARNINGS)
if (CMAKE_COMPILER_IS_IAR) if (CMAKE_COMPILER_IS_IAR)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --warnings_are_errors") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --warnings_are_errors")
endif(CMAKE_COMPILER_IS_IAR) endif(CMAKE_COMPILER_IS_IAR)
endif(MBEDTLS_FATAL_WARNINGS) endif(TF_PSA_CRYPTO_FATAL_WARNINGS)
if(CMAKE_BUILD_TYPE STREQUAL "Check" AND TEST_CPP) if(CMAKE_BUILD_TYPE STREQUAL "Check" AND TEST_CPP)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
@ -328,7 +329,7 @@ add_subdirectory(drivers)
# and programs. This shared test code is compiled and linked to test suites and # and programs. This shared test code is compiled and linked to test suites and
# programs objects as a set of compiled objects. The compiled objects are NOT # programs objects as a set of compiled objects. The compiled objects are NOT
# built into a library that the test suite and program objects would link # built into a library that the test suite and program objects would link
# against as they link against the mbedcrypto library. The reason is that such # against as they link against the tfpsacrypto library. The reason is that such
# library is expected to have mutual dependencies with the aforementioned # library is expected to have mutual dependencies with the aforementioned
# library and that there is as of today no portable way of handling such # library and that there is as of today no portable way of handling such
# dependencies (only toolchain specific solutions). # dependencies (only toolchain specific solutions).
@ -349,7 +350,7 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
WORKING_DIRECTORY WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/tests ${CMAKE_CURRENT_SOURCE_DIR}/tests
COMMAND COMMAND
"${MBEDTLS_PYTHON_EXECUTABLE}" "${TF_PSA_CRYPTO_PYTHON_EXECUTABLE}"
"${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_keys.py" "${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_keys.py"
"--output" "--output"
"${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h" "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_keys.h"
@ -364,7 +365,7 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
WORKING_DIRECTORY WORKING_DIRECTORY
${CMAKE_CURRENT_SOURCE_DIR}/tests ${CMAKE_CURRENT_SOURCE_DIR}/tests
COMMAND COMMAND
"${MBEDTLS_PYTHON_EXECUTABLE}" "${TF_PSA_CRYPTO_PYTHON_EXECUTABLE}"
"${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_cert_macros.py" "${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_cert_macros.py"
"--output" "--output"
"${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h" "${CMAKE_CURRENT_SOURCE_DIR}/tests/src/test_certs.h"
@ -384,14 +385,14 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
# Request C11, needed for memory poisoning tests # Request C11, needed for memory poisoning tests
set_target_properties(mbedtls_test PROPERTIES C_STANDARD 11) set_target_properties(mbedtls_test PROPERTIES C_STANDARD 11)
# Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE # Pass-through TF_PSA_CRYPTO_CONFIG_FILE and TF_PSA_CRYPTO_USER_CONFIG_FILE
if(MBEDTLS_CONFIG_FILE) if(TF_PSA_CRYPTO_CONFIG_FILE)
target_compile_definitions(mbedtls_test target_compile_definitions(mbedtls_test
PUBLIC MBEDTLS_CONFIG_FILE="${MBEDTLS_CONFIG_FILE}") PUBLIC TF_PSA_CRYPTO_CONFIG_FILE="${TF_PSA_CRYPTO_CONFIG_FILE}")
endif() endif()
if(MBEDTLS_USER_CONFIG_FILE) if(TF_PSA_CRYPTO_USER_CONFIG_FILE)
target_compile_definitions(mbedtls_test target_compile_definitions(mbedtls_test
PUBLIC MBEDTLS_USER_CONFIG_FILE="${MBEDTLS_USER_CONFIG_FILE}") PUBLIC TF_PSA_CRYPTO_USER_CONFIG_FILE="${TF_PSA_CRYPTO_USER_CONFIG_FILE}")
endif() endif()
endif() endif()