mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2026-07-30 16:26:33 +08:00
cmake: Allow generic path for TF-PSA-Crypto repo
Instead of requiring TF-PSA-Crypto to be inside the "mbedtls" folder, allow it to be placed anywhere and its path to be specified when calling CMake. Signed-off-by: Valerio Setti <vsetti@baylibre.com>
This commit is contained in:
parent
884c5f81a5
commit
3e1139ba1b
@ -67,6 +67,9 @@ endif()
|
||||
# Set the project and framework root directory.
|
||||
set(MBEDTLS_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(MBEDTLS_FRAMEWORK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/framework)
|
||||
if(NOT DEFINED TF_PSA_CRYPTO_DIR)
|
||||
set(TF_PSA_CRYPTO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto)
|
||||
endif()
|
||||
|
||||
option(ENABLE_PROGRAMS "Build Mbed TLS programs." ON)
|
||||
|
||||
@ -349,7 +352,7 @@ set(TF_PSA_CRYPTO_TARGET_PREFIX ${MBEDTLS_TARGET_PREFIX} CACHE STRING "")
|
||||
set(TF_PSA_CRYPTO_FATAL_WARNINGS ${MBEDTLS_FATAL_WARNINGS} CACHE BOOL "")
|
||||
set(USE_STATIC_TF_PSA_CRYPTO_LIBRARY ${USE_STATIC_MBEDTLS_LIBRARY} CACHE BOOL "")
|
||||
set(USE_SHARED_TF_PSA_CRYPTO_LIBRARY ${USE_SHARED_MBEDTLS_LIBRARY} CACHE BOOL "")
|
||||
add_subdirectory(tf-psa-crypto)
|
||||
add_subdirectory(${TF_PSA_CRYPTO_DIR} tf-psa-crypto)
|
||||
|
||||
set(tfpsacrypto_target "${TF_PSA_CRYPTO_TARGET_PREFIX}tfpsacrypto")
|
||||
if (USE_STATIC_MBEDTLS_LIBRARY)
|
||||
@ -379,12 +382,12 @@ endforeach(target)
|
||||
# empty.
|
||||
#
|
||||
set(TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/core
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/dispatch
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/drivers/builtin/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/extras
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/platform
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/tf-psa-crypto/utilities
|
||||
${TF_PSA_CRYPTO_DIR}/core
|
||||
${TF_PSA_CRYPTO_DIR}/dispatch
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
|
||||
${TF_PSA_CRYPTO_DIR}/extras
|
||||
${TF_PSA_CRYPTO_DIR}/platform
|
||||
${TF_PSA_CRYPTO_DIR}/utilities
|
||||
)
|
||||
|
||||
add_subdirectory(library)
|
||||
@ -433,10 +436,10 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
|
||||
${MBEDTLS_FRAMEWORK_DIR}/tests/include
|
||||
tests/include
|
||||
include
|
||||
tf-psa-crypto/include
|
||||
tf-psa-crypto/drivers/builtin/include
|
||||
tf-psa-crypto/drivers/everest/include
|
||||
tf-psa-crypto/drivers/pqcp/include
|
||||
${TF_PSA_CRYPTO_DIR}/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/everest/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/pqcp/include
|
||||
library
|
||||
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}
|
||||
)
|
||||
@ -470,11 +473,11 @@ if(ENABLE_TESTING OR ENABLE_PROGRAMS)
|
||||
${MBEDTLS_FRAMEWORK_DIR}/tests/include
|
||||
tests/include
|
||||
include
|
||||
tf-psa-crypto/include
|
||||
tf-psa-crypto/drivers/builtin/include
|
||||
${TF_PSA_CRYPTO_DIR}/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include
|
||||
library
|
||||
tf-psa-crypto/drivers/everest/include
|
||||
tf-psa-crypto/drivers/pqcp/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/everest/include
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/pqcp/include
|
||||
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
|
||||
@ -6,9 +6,9 @@ EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = YES
|
||||
EXTRACT_STATIC = YES
|
||||
CASE_SENSE_NAMES = NO
|
||||
INPUT = ../include input ../tf-psa-crypto/include ../tests/include/alt-dummy
|
||||
INPUT = "@CMAKE_CURRENT_LIST_DIR@/include" "@CMAKE_CURRENT_LIST_DIR@/doxygen/input" "@TF_PSA_CRYPTO_DIR@/include" "@CMAKE_CURRENT_LIST_DIR@/tests/include/alt-dummy"
|
||||
FILE_PATTERNS = *.h
|
||||
EXCLUDE = ../tf-psa-crypto/include/mbedtls/private
|
||||
EXCLUDE = "../@TF_PSA_CRYPTO_DIR@/include/mbedtls/private"
|
||||
RECURSIVE = YES
|
||||
EXCLUDE_SYMLINKS = YES
|
||||
SOURCE_BROWSER = YES
|
||||
@ -22,7 +22,7 @@ GENERATE_LATEX = NO
|
||||
GENERATE_XML = YES
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = YES
|
||||
INCLUDE_PATH = ../include ../tf-psa-crypto/include ../tf-psa-crypto/drivers/builtin/include
|
||||
INCLUDE_PATH = "@CMAKE_CURRENT_LIST_DIR@/include" "@TF_PSA_CRYPTO_DIR@/include" "@TF_PSA_CRYPTO_DIR@/drivers/builtin/include"
|
||||
EXPAND_AS_DEFINED = MBEDTLS_PRIVATE
|
||||
CLASS_DIAGRAMS = NO
|
||||
HAVE_DOT = YES
|
||||
|
||||
@ -48,7 +48,7 @@ if(GEN_FILES)
|
||||
COMMAND
|
||||
${PERL_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/drivers/builtin/include/mbedtls
|
||||
${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/mbedtls
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files
|
||||
${CMAKE_CURRENT_BINARY_DIR}/${TF_PSA_CRYPTO_DRIVERS_BUILTIN_SRC_DIR}/error.c
|
||||
@ -234,13 +234,13 @@ endif(USE_SHARED_MBEDTLS_LIBRARY)
|
||||
|
||||
foreach(target IN LISTS target_libraries)
|
||||
add_library(MbedTLS::${target} ALIAS ${target}) # add_subdirectory support
|
||||
# Include public header files from /include, /tf-psa-crypto/include/ and
|
||||
# tf-psa-crypto/drivers/builtin/include/. Include private header files
|
||||
# Include public header files from /include, ${TF_PSA_CRYPTO_DIR}/include/ and
|
||||
# ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/. Include private header files
|
||||
# from /library and ${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}.
|
||||
target_include_directories(${target}
|
||||
PUBLIC $<BUILD_INTERFACE:${MBEDTLS_DIR}/include/>
|
||||
$<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/include/>
|
||||
$<BUILD_INTERFACE:${MBEDTLS_DIR}/tf-psa-crypto/drivers/builtin/include/>
|
||||
$<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/include/>
|
||||
$<BUILD_INTERFACE:${TF_PSA_CRYPTO_DIR}/drivers/builtin/include/>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
PRIVATE ${MBEDTLS_DIR}/library/
|
||||
${TF_PSA_CRYPTO_PRIVATE_INCLUDE_DIRS}
|
||||
|
||||
@ -31,19 +31,19 @@ foreach(exe IN LISTS executables_no_common_c executables_with_common_c)
|
||||
$<TARGET_OBJECTS:mbedtls_test_helpers>
|
||||
$<TARGET_OBJECTS:mbedtls_test>)
|
||||
if(NOT FUZZINGENGINE_LIB)
|
||||
list(APPEND exe_sources ${MBEDTLS_DIR}/tf-psa-crypto/programs/fuzz/fuzz_onefile.c)
|
||||
list(APPEND exe_sources ${TF_PSA_CRYPTO_DIR}/programs/fuzz/fuzz_onefile.c)
|
||||
endif()
|
||||
|
||||
# This emulates "if ( ... IN_LIST ... )" which becomes available in CMake 3.3
|
||||
list(FIND executables_with_common_c ${exe} exe_index)
|
||||
if(${exe_index} GREATER -1)
|
||||
list(APPEND exe_sources ${MBEDTLS_DIR}/tf-psa-crypto/programs/fuzz/fuzz_common.c)
|
||||
list(APPEND exe_sources ${TF_PSA_CRYPTO_DIR}/programs/fuzz/fuzz_common.c)
|
||||
endif()
|
||||
|
||||
add_executable(${exe} ${exe_sources})
|
||||
set_base_compile_options(${exe})
|
||||
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../framework/tests/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/programs/fuzz/
|
||||
${TF_PSA_CRYPTO_DIR}/programs/fuzz/
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tests/include)
|
||||
|
||||
if (NOT FUZZINGENGINE_LIB)
|
||||
|
||||
@ -27,8 +27,8 @@ if(TEST_CPP)
|
||||
set_base_compile_options(cpp_dummy_build)
|
||||
target_include_directories(cpp_dummy_build
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include)
|
||||
PRIVATE ${TF_PSA_CRYPTO_DIR}/include
|
||||
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include)
|
||||
target_link_libraries(cpp_dummy_build ${tfpsacrypto_target} ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
|
||||
@ -38,8 +38,8 @@ if(USE_SHARED_MBEDTLS_LIBRARY AND
|
||||
set_base_compile_options(dlopen)
|
||||
target_include_directories(dlopen
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/include)
|
||||
PRIVATE ${TF_PSA_CRYPTO_DIR}/include
|
||||
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/include)
|
||||
target_link_libraries(dlopen ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
|
||||
@ -53,14 +53,14 @@ if(GEN_FILES)
|
||||
${PERL}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h
|
||||
${TF_PSA_CRYPTO_DIR}/include/psa/crypto_config.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
|
||||
${CMAKE_CURRENT_BINARY_DIR}/query_config.c
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..
|
||||
DEPENDS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/generate_query_config.pl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../include/mbedtls/mbedtls_config.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/include/psa/crypto_config.h
|
||||
${TF_PSA_CRYPTO_DIR}/include/psa/crypto_config.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../scripts/data_files/query_config.fmt
|
||||
)
|
||||
# this file will also be used in another directory, so create a target, see
|
||||
@ -92,7 +92,7 @@ foreach(exe IN LISTS executables)
|
||||
${MBEDTLS_FRAMEWORK_DIR}/tests/programs)
|
||||
target_include_directories(${exe}
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../library
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/core)
|
||||
${TF_PSA_CRYPTO_DIR}/core)
|
||||
if(exe STREQUAL "query_compile_time_config")
|
||||
target_include_directories(${exe} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
endif()
|
||||
@ -103,8 +103,8 @@ foreach(exe IN LISTS executables)
|
||||
endforeach()
|
||||
|
||||
target_include_directories(metatest
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/drivers/builtin/src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../tf-psa-crypto/platform
|
||||
PRIVATE ${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
|
||||
${TF_PSA_CRYPTO_DIR}/platform
|
||||
)
|
||||
install(TARGETS ${executables}
|
||||
DESTINATION "bin"
|
||||
|
||||
@ -147,18 +147,18 @@ function(add_test_suite suite_name)
|
||||
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
|
||||
-f ${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
|
||||
-d ${data_file}
|
||||
-t ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
|
||||
-p ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
|
||||
-t ${TF_PSA_CRYPTO_DIR}/tests/suites/main_test.function
|
||||
-p ${TF_PSA_CRYPTO_DIR}/tests/suites/host_test.function
|
||||
-s ${CMAKE_CURRENT_SOURCE_DIR}/suites
|
||||
--helpers-file ${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
|
||||
--helpers-file ${TF_PSA_CRYPTO_DIR}/tests/suites/helpers.function
|
||||
-o .
|
||||
DEPENDS
|
||||
${MBEDTLS_FRAMEWORK_DIR}/scripts/generate_test_code.py
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/suites/test_suite_${suite_name}.function
|
||||
${data_file}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/main_test.function
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/host_test.function
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../tf-psa-crypto/tests/suites/helpers.function
|
||||
${TF_PSA_CRYPTO_DIR}/tests/suites/main_test.function
|
||||
${TF_PSA_CRYPTO_DIR}/tests/suites/host_test.function
|
||||
${TF_PSA_CRYPTO_DIR}/tests/suites/helpers.function
|
||||
${mbedtls_target}
|
||||
BYPRODUCTS
|
||||
test_suite_${data_name}.datax
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user