blob: 150fe39809099cb79eb76b516807d1f5e0c966e4 [file] [log] [blame]
# Copyright 2021 The Pigweed Authors
#
# 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
#
# https://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_overrides/pigweed.gni")
import("$dir_pw_build/target_types.gni")
declare_args() {
# If compiling backends with mbedtls, this variable is set to the path to the
# mbedtls source code. When set, a pw_source_set for the mbedtls library is
# created at "$dir_pw_third_party/mbedtls".
dir_pw_third_party_mbedtls = ""
# configuration for mbedtls. Can be one of |mbedtls_configs|
pw_third_party_mbedtls_CONFIG = "default"
}
# The list currently includes all source files for build.
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/certs.c",
"library/chacha20.c",
"library/chachapoly.c",
"library/cipher.c",
"library/cipher_wrap.c",
"library/cmac.c",
"library/ctr_drbg.c",
"library/debug.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/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/pkcs11.c",
"library/pkcs12.c",
"library/pkcs5.c",
"library/pkparse.c",
"library/pkwrite.c",
"library/platform.c",
"library/platform_util.c",
"library/poly1305.c",
"library/psa_crypto.c",
"library/psa_crypto_driver_wrappers.c",
"library/psa_crypto_se.c",
"library/psa_crypto_slot_management.c",
"library/psa_crypto_storage.c",
"library/psa_its_file.c",
"library/ripemd160.c",
"library/rsa.c",
"library/rsa_internal.c",
"library/sha1.c",
"library/sha256.c",
"library/sha512.c",
"library/ssl_cache.c",
"library/ssl_ciphersuites.c",
"library/ssl_cli.c",
"library/ssl_cookie.c",
"library/ssl_msg.c",
"library/ssl_srv.c",
"library/ssl_ticket.c",
"library/ssl_tls.c",
"library/ssl_tls13_keys.c",
"library/threading.c",
"library/timing.c",
"library/version.c",
"library/version_features.c",
"library/x509.c",
"library/x509_create.c",
"library/x509_crl.c",
"library/x509_crt.c",
"library/x509_csr.c",
"library/x509write_crt.c",
"library/x509write_csr.c",
"library/xtea.c",
]
if (dir_pw_third_party_mbedtls != "") {
mbedtls_configs = [
{
name = "default"
config_header = "configs/config_default.h"
},
# TODO(zyecheng): Add more working configs for code-size optimization.
]
foreach(ele, mbedtls_configs) {
config_name = ele.name + "_config"
config(config_name) {
# Custom config file is specified by macro MBEDTLS_CONFIG_FILE
# for MbedTLS
defines = [ "MBEDTLS_CONFIG_FILE=\"${ele.config_header}\"" ]
include_dirs = [ "." ]
}
pw_source_set(ele.name) {
public = [
"configs/config_pigweed_common.h",
ele.config_header,
]
public_configs = [ ":${config_name}" ]
}
}
config("mbedtls_common_config") {
include_dirs = [
"$dir_pw_third_party_mbedtls",
"$dir_pw_third_party_mbedtls/include",
]
cflags = [
"-Wno-error=cast-qual",
"-Wno-error=redundant-decls",
]
}
pw_source_set("mbedtls") {
sources = []
foreach(source, mbedtls_sources) {
sources += [ "$dir_pw_third_party_mbedtls/" + source ]
}
public_configs = [ ":mbedtls_common_config" ]
public_deps = [ ":$pw_third_party_mbedtls_CONFIG" ]
}
} else {
group("mbedtls") {
}
}