blob: c6cff80b87c915f3213588aa14bdf777aecdeec4 [file] [log] [blame]
# Copyright (c) 2020 Project CHIP 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
#
# 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_overrides/chip.gni")
import("//build_overrides/k32w0_sdk.gni")
import("//build_overrides/mbedtls.gni")
import("${k32w0_sdk_build_root}/k32w0_sdk.gni")
import("${mbedtls_root}/mbedtls.gni")
declare_args() {
# Build target to use for k32w0 SDK. Use this to set global SDK defines.
k32w0_sdk_target = ""
}
assert(k32w0_sdk_target != "", "k32w0_sdk_target must be specified")
group("k32w0_sdk") {
public_deps = [ k32w0_sdk_target ]
}
if (chip_crypto == "tinycrypt") {
assert(
mbedtls_repo ==
"//third_party/connectedhomeip/third_party/nxp/libs/mbedtls",
"mbedtls_repo must be set to nxp mbedtls-tinycrypt library when chip_crypto == \"tinycrypt\"")
}
config("mbedtls_k32w0_config") {
defines = [
"MBEDTLS_CONFIG_FILE=<third_party/openthread/repo/third_party/mbedtls/mbedtls-config.h>",
"MBEDTLS_USER_CONFIG_FILE=<src/platform/nxp/k32w/k32w0/k32w0-chip-mbedtls-config.h>",
# These options should really be in the config.h...
"MBEDTLS_FREESCALE_FREERTOS_CALLOC_ALT=1",
"MBEDTLS_THREADING_C=1",
"MBEDTLS_THREADING_ALT=1",
"MBEDTLS_X509_CSR_WRITE_C",
"MBEDTLS_X509_CREATE_C",
"MBEDTLS_PEM_WRITE_C",
"MBEDTLS_HKDF_C",
"MBEDTLS_PKCS5_C",
]
if (chip_mdns == "none") {
defines += [
"MBEDTLS_PK_WRITE_C",
"MBEDTLS_OID_C",
"MBEDTLS_BASE64_C",
]
}
if (chip_with_factory_data == 1) {
defines += [
"MBEDTLS_X509_CRT_PARSE_C",
"MBEDTLS_X509_USE_C",
]
}
if (chip_crypto == "tinycrypt") {
defines += [
"MBEDTLS_USE_TINYCRYPT",
"MBEDTLS_OPTIMIZE_TINYCRYPT_ASM",
]
}
include_dirs = [ chip_root ]
if (chip_crypto == "tinycrypt") {
include_dirs += [ "${mbedtls_repo}/repo/include/tinycrypt" ]
}
}
mbedtls_target("mbedtls") {
sources = [
"${chip_root}/src/platform/nxp/k32w/k32w0/crypto/ksdk_mbedtls.c",
"${k32w0_sdk_root}/middleware/mbedtls/port/ksdk/aes_alt.c",
]
if (chip_crypto == "tinycrypt") {
sources += [
"${mbedtls_repo}/repo/tinycrypt/ecc.c",
"${mbedtls_repo}/repo/tinycrypt/ecc_dh.c",
"${mbedtls_repo}/repo/tinycrypt/ecc_dsa.c",
]
}
public_configs = [ ":mbedtls_k32w0_config" ]
public_deps = [
":k32w0_sdk",
"${chip_root}/third_party/openthread/platforms/nxp/k32w/k32w0:openthread_mbedtls_config_k32w0",
]
}