289 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			289 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
								 | 
							
								option(USE_STATIC_MBEDTLS_LIBRARY "Build mbed TLS static library." ON)
							 | 
						||
| 
								 | 
							
								option(USE_SHARED_MBEDTLS_LIBRARY "Build mbed TLS shared library." 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)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Set the project root directory if it's not already defined, as may happen if
							 | 
						||
| 
								 | 
							
								# the library folder is included directly by a parent project, without
							 | 
						||
| 
								 | 
							
								# including the top level CMakeLists.txt.
							 | 
						||
| 
								 | 
							
								if(NOT DEFINED MBEDTLS_DIR)
							 | 
						||
| 
								 | 
							
								    set(MBEDTLS_DIR ${CMAKE_SOURCE_DIR})
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(src_crypto
							 | 
						||
| 
								 | 
							
								    aes.c
							 | 
						||
| 
								 | 
							
								    aesni.c
							 | 
						||
| 
								 | 
							
								    aria.c
							 | 
						||
| 
								 | 
							
								    asn1parse.c
							 | 
						||
| 
								 | 
							
								    asn1write.c
							 | 
						||
| 
								 | 
							
								    base64.c
							 | 
						||
| 
								 | 
							
								    bignum.c
							 | 
						||
| 
								 | 
							
								    camellia.c
							 | 
						||
| 
								 | 
							
								    ccm.c
							 | 
						||
| 
								 | 
							
								    chacha20.c
							 | 
						||
| 
								 | 
							
								    chachapoly.c
							 | 
						||
| 
								 | 
							
								    cipher.c
							 | 
						||
| 
								 | 
							
								    cipher_wrap.c
							 | 
						||
| 
								 | 
							
								    constant_time.c
							 | 
						||
| 
								 | 
							
								    cmac.c
							 | 
						||
| 
								 | 
							
								    ctr_drbg.c
							 | 
						||
| 
								 | 
							
								    des.c
							 | 
						||
| 
								 | 
							
								    dhm.c
							 | 
						||
| 
								 | 
							
								    ecdh.c
							 | 
						||
| 
								 | 
							
								    ecdsa.c
							 | 
						||
| 
								 | 
							
								    ecjpake.c
							 | 
						||
| 
								 | 
							
								    ecp.c
							 | 
						||
| 
								 | 
							
								    ecp_curves.c
							 | 
						||
| 
								 | 
							
								    entropy.c
							 | 
						||
| 
								 | 
							
								    entropy_poll.c
							 | 
						||
| 
								 | 
							
								    error.c
							 | 
						||
| 
								 | 
							
								    gcm.c
							 | 
						||
| 
								 | 
							
								    hkdf.c
							 | 
						||
| 
								 | 
							
								    hmac_drbg.c
							 | 
						||
| 
								 | 
							
								    md.c
							 | 
						||
| 
								 | 
							
								    md5.c
							 | 
						||
| 
								 | 
							
								    memory_buffer_alloc.c
							 | 
						||
| 
								 | 
							
								    mps_reader.c
							 | 
						||
| 
								 | 
							
								    mps_trace.c
							 | 
						||
| 
								 | 
							
								    nist_kw.c
							 | 
						||
| 
								 | 
							
								    oid.c
							 | 
						||
| 
								 | 
							
								    padlock.c
							 | 
						||
| 
								 | 
							
								    pem.c
							 | 
						||
| 
								 | 
							
								    pk.c
							 | 
						||
| 
								 | 
							
								    pk_wrap.c
							 | 
						||
| 
								 | 
							
								    pkcs12.c
							 | 
						||
| 
								 | 
							
								    pkcs5.c
							 | 
						||
| 
								 | 
							
								    pkparse.c
							 | 
						||
| 
								 | 
							
								    pkwrite.c
							 | 
						||
| 
								 | 
							
								    platform.c
							 | 
						||
| 
								 | 
							
								    platform_util.c
							 | 
						||
| 
								 | 
							
								    poly1305.c
							 | 
						||
| 
								 | 
							
								    psa_crypto.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_aead.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_cipher.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_client.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_driver_wrappers.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_ecp.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_hash.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_mac.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_rsa.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_se.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_slot_management.c
							 | 
						||
| 
								 | 
							
								    psa_crypto_storage.c
							 | 
						||
| 
								 | 
							
								    psa_its_file.c
							 | 
						||
| 
								 | 
							
								    ripemd160.c
							 | 
						||
| 
								 | 
							
								    rsa.c
							 | 
						||
| 
								 | 
							
								    rsa_alt_helpers.c
							 | 
						||
| 
								 | 
							
								    sha1.c
							 | 
						||
| 
								 | 
							
								    sha256.c
							 | 
						||
| 
								 | 
							
								    sha512.c
							 | 
						||
| 
								 | 
							
								    ssl_debug_helpers_generated.c
							 | 
						||
| 
								 | 
							
								    threading.c
							 | 
						||
| 
								 | 
							
								    timing.c
							 | 
						||
| 
								 | 
							
								    version.c
							 | 
						||
| 
								 | 
							
								    version_features.c
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(src_x509
							 | 
						||
| 
								 | 
							
								    x509.c
							 | 
						||
| 
								 | 
							
								    x509_create.c
							 | 
						||
| 
								 | 
							
								    x509_crl.c
							 | 
						||
| 
								 | 
							
								    x509_crt.c
							 | 
						||
| 
								 | 
							
								    x509_csr.c
							 | 
						||
| 
								 | 
							
								    x509write_crt.c
							 | 
						||
| 
								 | 
							
								    x509write_csr.c
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(src_tls
							 | 
						||
| 
								 | 
							
								    debug.c
							 | 
						||
| 
								 | 
							
								    net_sockets.c
							 | 
						||
| 
								 | 
							
								    ssl_cache.c
							 | 
						||
| 
								 | 
							
								    ssl_ciphersuites.c
							 | 
						||
| 
								 | 
							
								    ssl_cli.c
							 | 
						||
| 
								 | 
							
								    ssl_cookie.c
							 | 
						||
| 
								 | 
							
								    ssl_msg.c
							 | 
						||
| 
								 | 
							
								    ssl_srv.c
							 | 
						||
| 
								 | 
							
								    ssl_ticket.c
							 | 
						||
| 
								 | 
							
								    ssl_tls.c
							 | 
						||
| 
								 | 
							
								    ssl_tls13_keys.c
							 | 
						||
| 
								 | 
							
								    ssl_tls13_server.c
							 | 
						||
| 
								 | 
							
								    ssl_tls13_client.c
							 | 
						||
| 
								 | 
							
								    ssl_tls13_generic.c
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(GEN_FILES)
							 | 
						||
| 
								 | 
							
								    find_package(Perl REQUIRED)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    file(GLOB error_headers ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls/*.h)
							 | 
						||
| 
								 | 
							
								    add_custom_command(
							 | 
						||
| 
								 | 
							
								        OUTPUT
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_BINARY_DIR}/error.c
							 | 
						||
| 
								 | 
							
								        COMMAND
							 | 
						||
| 
								 | 
							
								            ${PERL_EXECUTABLE}
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_BINARY_DIR}/error.c
							 | 
						||
| 
								 | 
							
								        DEPENDS
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_errors.pl
							 | 
						||
| 
								 | 
							
								            ${error_headers}
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/error.fmt
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_custom_command(
							 | 
						||
| 
								 | 
							
								        OUTPUT
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_BINARY_DIR}/version_features.c
							 | 
						||
| 
								 | 
							
								        COMMAND
							 | 
						||
| 
								 | 
							
								            ${PERL_EXECUTABLE}
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_features.pl
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_BINARY_DIR}/version_features.c
							 | 
						||
| 
								 | 
							
								        DEPENDS
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_features.pl
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../include/mbedtls/mbedtls_config.h
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/data_files/version_features.fmt
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_custom_command(
							 | 
						||
| 
								 | 
							
								        OUTPUT
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.h
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
							 | 
						||
| 
								 | 
							
								        COMMAND
							 | 
						||
| 
								 | 
							
								            ${MBEDTLS_PYTHON_EXECUTABLE}
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_ssl_debug_helpers.py
							 | 
						||
| 
								 | 
							
								                --mbedtls-root ${CMAKE_CURRENT_SOURCE_DIR}/..
							 | 
						||
| 
								 | 
							
								                ${CMAKE_CURRENT_BINARY_DIR}
							 | 
						||
| 
								 | 
							
								        DEPENDS
							 | 
						||
| 
								 | 
							
								            ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/generate_ssl_debug_helpers.py
							 | 
						||
| 
								 | 
							
								            ${error_headers}
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								else()
							 | 
						||
| 
								 | 
							
								    link_to_source(error.c)
							 | 
						||
| 
								 | 
							
								    link_to_source(version_features.c)
							 | 
						||
| 
								 | 
							
								    link_to_source(ssl_debug_helpers_generated.c)
							 | 
						||
| 
								 | 
							
								    link_to_source(ssl_debug_helpers_generated.h)
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(CMAKE_COMPILER_IS_GNUCC)
							 | 
						||
| 
								 | 
							
								    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes")
							 | 
						||
| 
								 | 
							
								endif(CMAKE_COMPILER_IS_GNUCC)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(CMAKE_COMPILER_IS_CLANG)
							 | 
						||
| 
								 | 
							
								    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code")
							 | 
						||
| 
								 | 
							
								endif(CMAKE_COMPILER_IS_CLANG)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(WIN32)
							 | 
						||
| 
								 | 
							
								    set(libs ${libs} ws2_32)
							 | 
						||
| 
								 | 
							
								endif(WIN32)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
							 | 
						||
| 
								 | 
							
								    SET(CMAKE_C_ARCHIVE_CREATE   "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
							 | 
						||
| 
								 | 
							
								    SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> Scr <TARGET> <LINK_FLAGS> <OBJECTS>")
							 | 
						||
| 
								 | 
							
								    SET(CMAKE_C_ARCHIVE_FINISH   "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
							 | 
						||
| 
								 | 
							
								    SET(CMAKE_CXX_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(HAIKU)
							 | 
						||
| 
								 | 
							
								    set(libs ${libs} network)
							 | 
						||
| 
								 | 
							
								endif(HAIKU)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(LINK_WITH_PTHREAD)
							 | 
						||
| 
								 | 
							
								    set(libs ${libs} pthread)
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(LINK_WITH_TRUSTED_STORAGE)
							 | 
						||
| 
								 | 
							
								    set(libs ${libs} trusted_storage)
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    message(FATAL_ERROR "Need to choose static or shared mbedtls build!")
							 | 
						||
| 
								 | 
							
								endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(mbedtls_target    "${MBEDTLS_TARGET_PREFIX}mbedtls")
							 | 
						||
| 
								 | 
							
								set(mbedx509_target   "${MBEDTLS_TARGET_PREFIX}mbedx509")
							 | 
						||
| 
								 | 
							
								set(mbedcrypto_target "${MBEDTLS_TARGET_PREFIX}mbedcrypto")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(mbedtls_target    ${mbedtls_target}    PARENT_SCOPE)
							 | 
						||
| 
								 | 
							
								set(mbedx509_target   ${mbedx509_target}   PARENT_SCOPE)
							 | 
						||
| 
								 | 
							
								set(mbedcrypto_target ${mbedcrypto_target} PARENT_SCOPE)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (USE_STATIC_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    set(mbedtls_static_target    ${mbedtls_target})
							 | 
						||
| 
								 | 
							
								    set(mbedx509_static_target   ${mbedx509_target})
							 | 
						||
| 
								 | 
							
								    set(mbedcrypto_static_target ${mbedcrypto_target})
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(target_libraries ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    string(APPEND mbedtls_static_target    "_static")
							 | 
						||
| 
								 | 
							
								    string(APPEND mbedx509_static_target   "_static")
							 | 
						||
| 
								 | 
							
								    string(APPEND mbedcrypto_static_target "_static")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    list(APPEND target_libraries
							 | 
						||
| 
								 | 
							
								        ${mbedcrypto_static_target}
							 | 
						||
| 
								 | 
							
								        ${mbedx509_static_target}
							 | 
						||
| 
								 | 
							
								        ${mbedtls_static_target})
							 | 
						||
| 
								 | 
							
								endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(USE_STATIC_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    add_library(${mbedcrypto_static_target} STATIC ${src_crypto})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedcrypto_static_target} PROPERTIES OUTPUT_NAME mbedcrypto)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedcrypto_static_target} PUBLIC ${libs})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if(TARGET everest)
							 | 
						||
| 
								 | 
							
								        target_link_libraries(${mbedcrypto_static_target} PUBLIC everest)
							 | 
						||
| 
								 | 
							
								    endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_library(${mbedx509_static_target} STATIC ${src_x509})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedx509_static_target} PUBLIC ${libs} ${mbedcrypto_static_target})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_library(${mbedtls_static_target} STATIC ${src_tls})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedtls_static_target} PUBLIC ${libs} ${mbedx509_static_target})
							 | 
						||
| 
								 | 
							
								endif(USE_STATIC_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if(USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    add_library(${mbedcrypto_target} SHARED ${src_crypto})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.1.0 SOVERSION 11)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedcrypto_target} PUBLIC ${libs})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if(TARGET everest)
							 | 
						||
| 
								 | 
							
								        target_link_libraries(${mbedcrypto_target} PUBLIC everest)
							 | 
						||
| 
								 | 
							
								    endif()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_library(${mbedx509_target} SHARED ${src_x509})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.1.0 SOVERSION 4)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    add_library(${mbedtls_target} SHARED ${src_tls})
							 | 
						||
| 
								 | 
							
								    set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.1.0 SOVERSION 17)
							 | 
						||
| 
								 | 
							
								    target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
							 | 
						||
| 
								 | 
							
								endif(USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								foreach(target IN LISTS target_libraries)
							 | 
						||
| 
								 | 
							
								    # Include public header files from /include and other directories
							 | 
						||
| 
								 | 
							
								    # declared by /3rdparty/**/CMakeLists.txt. Include private header files
							 | 
						||
| 
								 | 
							
								    # from /library and others declared by /3rdparty/**/CMakeLists.txt.
							 | 
						||
| 
								 | 
							
								    # /library needs to be listed explicitly when building .c files outside
							 | 
						||
| 
								 | 
							
								    # of /library (which currently means: under /3rdparty).
							 | 
						||
| 
								 | 
							
								    target_include_directories(${target}
							 | 
						||
| 
								 | 
							
								        PUBLIC $<BUILD_INTERFACE:${MBEDTLS_DIR}/include/>
							 | 
						||
| 
								 | 
							
								               $<INSTALL_INTERFACE:include/>
							 | 
						||
| 
								 | 
							
								        PRIVATE ${MBEDTLS_DIR}/library/)
							 | 
						||
| 
								 | 
							
								    install(
							 | 
						||
| 
								 | 
							
								        TARGETS ${target}
							 | 
						||
| 
								 | 
							
								        EXPORT MbedTLSTargets
							 | 
						||
| 
								 | 
							
								        DESTINATION ${LIB_INSTALL_DIR}
							 | 
						||
| 
								 | 
							
								        PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
							 | 
						||
| 
								 | 
							
								endforeach(target)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set(lib_target "${MBEDTLS_TARGET_PREFIX}lib")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								add_custom_target(${lib_target} DEPENDS ${mbedcrypto_target} ${mbedx509_target} ${mbedtls_target})
							 | 
						||
| 
								 | 
							
								if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
							 | 
						||
| 
								 | 
							
								    add_dependencies(${lib_target} ${mbedcrypto_static_target} ${mbedx509_static_target} ${mbedtls_static_target})
							 | 
						||
| 
								 | 
							
								endif()
							 |