#
# Copyright (c) 2021 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.
#

import("//build/ohos.gni")
library = "//third_party/mbedtls/library"

mbedtls_sources = []
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",
]

config("mbedtls_config") {
  include_dirs = [ "//third_party/mbedtls/include" ]
}

ohos_shared_library("mbedtls_shared") {
  sanitize = {
    cfi = true
    cfi_cross_dso = true
    debug = false
  }
  branch_protector_ret = "pac_ret"

  sources = mbedtls_sources
  output_name = "mbedtls"
  public_configs = [ ":mbedtls_config" ]

  part_name = "dsoftbus"
  subsystem_name = "communication"
}

static_library("mbedtls_static") {
  sources = mbedtls_sources
  output_name = "mbedtls"
  public_configs = [ ":mbedtls_config" ]
}

group("mbedtls") {
  deps = [ ":mbedtls_shared" ]
}