From 35d59c6cb62c665a87f99138f318961fb1d7a38f Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 19 Sep 2025 17:16:01 +0200 Subject: [PATCH] cmake: Install libmbedcrypto.* libraries Signed-off-by: Ronald Cron --- library/CMakeLists.txt | 32 ++++++++++++++++++- .../test/cmake_package_install/CMakeLists.txt | 1 + tests/scripts/components-build-system.sh | 10 ++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 45e6f64ab2..0cc654d35e 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -267,6 +267,10 @@ foreach(target IN LISTS tf_psa_crypto_library_targets) $ "libmbedcrypto.a" ) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + RENAME "libmbedcrypto.a" + ) else() # Copy the crypto shared library from tf-psa-crypto: # - ".so." on Unix @@ -296,7 +300,11 @@ foreach(target IN LISTS tf_psa_crypto_library_targets) COMMAND ${CMAKE_COMMAND} -E create_symlink $ libmbedcrypto.dylib - ) + ) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + RENAME "libmbedcrypto.dylib" + ) elseif(WIN32 AND NOT CYGWIN) add_custom_command( TARGET ${mbedtls_target} POST_BUILD @@ -313,6 +321,14 @@ foreach(target IN LISTS tf_psa_crypto_library_targets) $ libmbedcrypto.lib ) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_BINDIR} + RENAME "libmbedcrypto.dll" + ) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + RENAME "libmbedcrypto.lib" + ) else() add_custom_command( TARGET ${mbedtls_target} POST_BUILD @@ -332,6 +348,20 @@ foreach(target IN LISTS tf_psa_crypto_library_targets) libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION} libmbedcrypto.so ) + install(FILES $ + DESTINATION ${CMAKE_INSTALL_LIBDIR} + RENAME "libmbedcrypto.so.${MBEDTLS_VERSION}" + ) + install(CODE " + set(_libdir \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\") + + execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink + \"libmbedcrypto.so.${MBEDTLS_VERSION}\" + \${_libdir}/libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}) + execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink + \"libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}\" + \${_libdir}/libmbedcrypto.so) + ") endif() endif() endforeach(target) diff --git a/programs/test/cmake_package_install/CMakeLists.txt b/programs/test/cmake_package_install/CMakeLists.txt index 60a4481e48..723538f7f7 100644 --- a/programs/test/cmake_package_install/CMakeLists.txt +++ b/programs/test/cmake_package_install/CMakeLists.txt @@ -17,6 +17,7 @@ execute_process( "-DENABLE_TESTING=NO" # Turn on generated files explicitly in case this is a release "-DGEN_FILES=ON" + "-DUSE_SHARED_MBEDTLS_LIBRARY=ON" "-DCMAKE_INSTALL_PREFIX=${MbedTLS_INSTALL_DIR}") execute_process( diff --git a/tests/scripts/components-build-system.sh b/tests/scripts/components-build-system.sh index e533cdf0f9..9a277e3c56 100644 --- a/tests/scripts/components-build-system.sh +++ b/tests/scripts/components-build-system.sh @@ -138,6 +138,16 @@ component_test_cmake_as_package_install () { cd programs/test/cmake_package_install cmake . make + + if ! cmp -s "mbedtls/lib/libtfpsacrypto.a" "mbedtls/lib/libmbedcrypto.a"; then + echo "Error: Crypto static libraries are different or one of them is missing/unreadable." >&2 + exit 1 + fi + if ! cmp -s "mbedtls/lib/libtfpsacrypto.so" "mbedtls/lib/libmbedcrypto.so"; then + echo "Error: Crypto shared libraries are different or one of them is missing/unreadable." >&2 + exit 1 + fi + ./cmake_package_install }