1# 2# Copyright (c) 2021, Nordic Semiconductor ASA 3# All rights reserved. 4# 5# SPDX-License-Identifier: BSD-3-Clause 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions are met: 9# 10# 1. Redistributions of source code must retain the above copyright notice, this 11# list of conditions and the following disclaimer. 12# 13# 2. Redistributions in binary form must reproduce the above copyright 14# notice, this list of conditions and the following disclaimer in the 15# documentation and/or other materials provided with the distribution. 16# 17# 3. Neither the name of Nordic Semiconductor ASA nor the names of its 18# contributors may be used to endorse or promote products derived from this 19# software without specific prior written permission. 20# 21# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23# IMPLIED WARRANTIES OF MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE 24# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 25# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31# POSSIBILITY OF SUCH DAMAGE. 32# 33# 34 35target_include_directories(nrf-802154-serialization-interface 36 INTERFACE 37 include 38 include/platform 39 include/serialization 40) 41 42add_library(nrf-802154-serialization STATIC EXCLUDE_FROM_ALL) 43 44target_include_directories(nrf-802154-serialization 45 PRIVATE 46 src/include 47) 48 49target_sources(nrf-802154-serialization 50 PRIVATE 51 spinel_base/spinel.c 52 src/nrf_802154_buffer_allocator.c 53 src/nrf_802154_buffer_mgr_dst.c 54 src/nrf_802154_buffer_mgr_src.c 55 src/nrf_802154_kvmap.c 56 src/nrf_802154_spinel.c 57 src/nrf_802154_spinel_dec.c 58) 59 60if(CONFIG_NATIVE_LIBRARY) 61 # The spinel header defines the spinel API, with SPINEL_API_EXTERN, as externally linkable. 62 # When building Zephyr for the native_simulator targets (including bsim targets) it would 63 # cause the linker to find duplicates when building the final executable if multiple MCUs 64 # include each this code. We fix this by having the native_simulator build make those symbols 65 # local before linking the final executable. 66 set_property(TARGET native_simulator APPEND PROPERTY 67 LOCALIZE_EXTRA_OPTIONS "--localize-symbol=spinel*" 68 ) 69endif() 70 71if (SER_HOST) 72 target_sources(nrf-802154-serialization 73 PRIVATE 74 src/nrf_802154_spinel_app.c 75 src/nrf_802154_spinel_dec_app.c 76 ) 77 target_compile_definitions(nrf-802154-serialization-interface 78 INTERFACE 79 # The core for which the code is compiled does not contain the 802.15.4 radio driver 80 # It contains the serialized radio driver functions. 81 NRF_802154_SERIALIZATION_HOST=1 82 ) 83else () 84 target_sources(nrf-802154-serialization 85 PRIVATE 86 src/nrf_802154_spinel_net.c 87 src/nrf_802154_spinel_dec_net.c 88 ) 89endif() 90 91target_link_libraries(nrf-802154-serialization-interface 92 INTERFACE 93 nrf-802154-common-interface 94) 95 96target_link_libraries(nrf-802154-serialization 97 PRIVATE 98 nrf-802154-serialization-interface 99 nrf-802154-platform 100 nrf-802154-common 101) 102