From a8198d0aa08a989013e0a9d9a2ad51529606ab03 Mon Sep 17 00:00:00 2001 From: paragdixit-g <57504008+paragdixit-g@users.noreply.github.com> Date: Thu, 17 Dec 2020 18:04:09 -0800 Subject: [PATCH] [gn] changes for fuchsia (#5649) src/ncp/BUILD.gn: Added new targets spinel/BUILD.gn: Added configs to propagate the flags to dependent targets BUILD.gn: Updated top level BUILD.gn to include ncp targets radio_spinel_impl.hpp: Removed compiler error for unused variable mbedtls/BUILD.gn: Added a missing src file, added compiler flag to ignore conversion as there is implicit unsigned int to unsigned char conversion in ctr_drbg.c and ecp.c --- BUILD.gn | 6 ++- src/lib/spinel/BUILD.gn | 12 ++++- src/lib/spinel/radio_spinel_impl.hpp | 4 ++ src/ncp/BUILD.gn | 79 ++++++++++++++++++++++++++++ third_party/mbedtls/BUILD.gn | 2 + 5 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 src/ncp/BUILD.gn diff --git a/BUILD.gn b/BUILD.gn index 15399a25d..1d2ff99ee 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -102,6 +102,10 @@ group("libopenthread-spinel-rcp") { if (current_os == "fuchsia") { group("lib-ot-core") { - public_deps = [ ":libopenthread-ftd" ] + public_deps = [ + ":libopenthread-ftd", + "src/core:libopenthread-ftd", + "src/ncp:libopenthread-ncp-ftd", + ] } } diff --git a/src/lib/spinel/BUILD.gn b/src/lib/spinel/BUILD.gn index e3a010a19..0747f91df 100644 --- a/src/lib/spinel/BUILD.gn +++ b/src/lib/spinel/BUILD.gn @@ -51,6 +51,14 @@ config("spinel_config") { include_dirs = [ ".." ] } +config("spinel_config_openthread_message_enable") { + defines = [ "OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1" ] +} + +config("spinel_config_openthread_message_disable") { + defines = [ "OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=0" ] +} + source_set("spinel-api") { public = [ "spinel.h" ] public_configs = [ ":spinel_config" ] @@ -62,7 +70,7 @@ static_library("libopenthread-spinel-ncp") { ":spinel-api", "../../core:libopenthread_core_headers", ] - defines = [ "OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1" ] + public_configs = [ ":spinel_config_openthread_message_enable" ] } static_library("libopenthread-spinel-rcp") { @@ -71,5 +79,5 @@ static_library("libopenthread-spinel-rcp") { ":spinel-api", "../../core:libopenthread_core_headers", ] - defines = [ "OPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=0" ] + public_configs = [ ":spinel_config_openthread_message_disable" ] } diff --git a/src/lib/spinel/radio_spinel_impl.hpp b/src/lib/spinel/radio_spinel_impl.hpp index 837ec6d33..be5c201fb 100644 --- a/src/lib/spinel/radio_spinel_impl.hpp +++ b/src/lib/spinel/radio_spinel_impl.hpp @@ -360,6 +360,10 @@ otError RadioSpinel::CheckRadioCapabilities(v { otRadioCaps missingCaps = (mRadioCaps & kRequiredRadioCaps) ^ kRequiredRadioCaps; + // missingCaps may be an unused variable when otLogCritPlat is blank + // avoid compiler warning in that case + OT_UNUSED_VARIABLE(missingCaps); + otLogCritPlat("RCP is missing required capabilities: %s%s%s%s%s", (missingCaps & OT_RADIO_CAPS_ACK_TIMEOUT) ? "ack-timeout " : "", (missingCaps & OT_RADIO_CAPS_TRANSMIT_RETRIES) ? "tx-retries " : "", diff --git a/src/ncp/BUILD.gn b/src/ncp/BUILD.gn new file mode 100644 index 000000000..5e25ecc96 --- /dev/null +++ b/src/ncp/BUILD.gn @@ -0,0 +1,79 @@ +# Copyright (c) 2020, The OpenThread Authors. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the name of the copyright holder nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +import("../../etc/gn/openthread.gni") + +openthread_ncp_sources = [ + "changed_props_set.cpp", + "changed_props_set.hpp", + "example_vendor_hook.cpp", + "ncp_base.cpp", + "ncp_base.hpp", + "ncp_base_dispatcher.cpp", + "ncp_base_ftd.cpp", + "ncp_base_mtd.cpp", + "ncp_base_radio.cpp", + "ncp_config.h", + "ncp_spi.cpp", + "ncp_spi.hpp", + "ncp_uart.cpp", + "ncp_uart.hpp", +] + +config("ncp_config") { + include_dirs = [ ".." ] +} + +static_library("libopenthread-ncp-ftd") { + sources = openthread_ncp_sources + public_deps = [ + "../core:libopenthread-ftd", + "../lib/spinel:libopenthread-spinel-ncp", + ] + public_configs = [ ":ncp_config" ] + visibility = [ "../../*" ] +} + +static_library("libopenthread-ncp-mtd") { + sources = openthread_ncp_sources + public_deps = [ + "../core:libopenthread-mtd", + "../lib/spinel:libopenthread-spinel-ncp", + ] + public_configs = [ ":ncp_config" ] + visibility = [ "../../*" ] +} + +static_library("libopenthread-rcp") { + sources = openthread_ncp_sources + public_deps = [ + "../core:libopenthread-radio", + "../lib/spinel:libopenthread-spinel-rcp", + ] + public_configs = [ ":ncp_config" ] + visibility = [ "../../*" ] +} diff --git a/third_party/mbedtls/BUILD.gn b/third_party/mbedtls/BUILD.gn index 06a06dad7..b61e7244c 100644 --- a/third_party/mbedtls/BUILD.gn +++ b/third_party/mbedtls/BUILD.gn @@ -40,6 +40,7 @@ config("mbedtls_config") { ] defines = [ "MBEDTLS_CONFIG_FILE=\"${mbedtls_config_file}\"" ] + cflags = [ "-Wno-conversion" ] } static_library("mbedtls") { @@ -143,6 +144,7 @@ static_library("mbedtls") { "repo/library/dhm.c", "repo/library/ecdh.c", "repo/library/ecdsa.c", + "repo/library/ecjpake.c", "repo/library/ecp.c", "repo/library/ecp_curves.c", "repo/library/entropy.c",