# # Copyright (c) 2020 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # mbedtls_sources = [ "library/aes.c", "library/aesni.c", "library/arc4.c", "library/aria.c", "library/asn1parse.c", "library/asn1write.c", "library/base64.c", "library/bignum.c", "library/blowfish.c", "library/camellia.c", "library/ccm.c", "library/chacha20.c", "library/chachapoly.c", "library/cipher.c", "library/cipher_wrap.c", "library/cmac.c", "library/ctr_drbg.c", "library/des.c", "library/dhm.c", "library/ecdh.c", "library/ecdsa.c", "library/ecjpake.c", "library/ecp.c", "library/ecp_curves.c", "library/entropy.c", "library/entropy_poll.c", "library/error.c", "library/gcm.c", "library/havege.c", "library/hkdf.c", "library/hmac_drbg.c", "library/md.c", "library/md2.c", "library/md4.c", "library/md5.c", "library/md_wrap.c", "library/memory_buffer_alloc.c", "library/net_sockets.c", "library/nist_kw.c", "library/oid.c", "library/padlock.c", "library/pem.c", "library/pk.c", "library/pk_wrap.c", "library/pkcs12.c", "library/pkcs5.c", "library/pkparse.c", "library/pkwrite.c", "library/platform.c", "library/platform_util.c", "library/poly1305.c", "library/ripemd160.c", "library/rsa.c", "library/rsa_internal.c", "library/sha1.c", "library/sha256.c", "library/sha512.c", "library/ssl_ciphersuites.c", "library/ssl_cli.c", "library/ssl_tls.c", "library/threading.c", "library/timing.c", "library/version.c", "library/version_features.c", "library/x509.c", "library/x509_crl.c", "library/x509_crt.c", "library/xtea.c", ] if (defined(ohos_lite)) { import("//build/lite/config/component/lite_component.gni") import("//build/lite/ndk/ndk.gni") defines = [] config("mbedtls_config") { include_dirs = [ "./include", "./include/mbedtls" ] if (ohos_kernel_type == "liteos_m") { defines += [ "__unix__", "MBEDTLS_CONFIG_FILE=<../port/config/config_liteos_m.h>" ] } if (ohos_kernel_type == "liteos_a") { defines += [ "__unix__", "MBEDTLS_CONFIG_FILE=<../port/config/config_liteos_a.h>" ] } } lite_library("mbedtls_shared") { target_type = "shared_library" public_configs = [ ":mbedtls_config" ] output_name = "mbedtls" sources = mbedtls_sources } lite_library("mbedtls_static") { target_type = "static_library" public_configs = [ ":mbedtls_config" ] if (ohos_kernel_type == "liteos_m") { include_dirs = [ "//kernel/liteos_m/kal/posix/include", "//kernel/liteos_m/kernel/include", "//kernel/liteos_m/utils", "//third_party/musl/porting/liteos_m/kernel/include/", ] } output_name = "mbedtls" sources = mbedtls_sources } group("mbedtls") { if (ohos_kernel_type == "liteos_m") { deps = [ ":mbedtls_static" ] } else { deps = [ ":mbedtls_shared" ] } } ndk_lib("mbedtls_ndk") { if (ohos_kernel_type == "liteos_m") { lib_extension = ".a" } else { lib_extension = ".so" } deps = [ ":mbedtls" ] head_files = [ "include" ] } # for test: test profile if (ohos_build_type == "debug" && ohos_kernel_type != "liteos_m") { config("mbedtls_profile_test") { include_dirs = [ "./include", "./configs", # The directory where the custom configuration file is # located ] defines = [ "MBEDTLS_CONFIG_FILE=", "__unix__", ] ldflags = [ "-s", "-w", ] } mbedtls_sources += [ "library/certs.c", "library/debug.c", "library/pkcs11.c", "library/ssl_cache.c", "library/ssl_cookie.c", "library/ssl_srv.c", "library/ssl_ticket.c", "library/x509_create.c", "library/x509_csr.c", "library/x509write_crt.c", "library/x509write_csr.c", ] static_library("mbedtls_gt") { sources = mbedtls_sources output_name = "mbedtls_gt" public_configs = [ ":mbedtls_profile_test" ] } } } else { import("//build/ohos.gni") config("mbedtls_config") { include_dirs = [ "./include", "./include/mbedtls" ] } ohos_shared_library("mbedtls_shared") { public_configs = [ ":mbedtls_config" ] output_name = "mbedtls" sources = mbedtls_sources } group("mbedtls") { deps = [ ":mbedtls_shared" ] } }