xref: /aosp_15_r20/external/openthread/script/check-simulation-build-cmake (revision cfb92d1480a9e65faed56933e9c12405f45898b4)
1*cfb92d14SAndroid Build Coastguard Worker#!/bin/bash
2*cfb92d14SAndroid Build Coastguard Worker#
3*cfb92d14SAndroid Build Coastguard Worker#  Copyright (c) 2020, The OpenThread Authors.
4*cfb92d14SAndroid Build Coastguard Worker#  All rights reserved.
5*cfb92d14SAndroid Build Coastguard Worker#
6*cfb92d14SAndroid Build Coastguard Worker#  Redistribution and use in source and binary forms, with or without
7*cfb92d14SAndroid Build Coastguard Worker#  modification, are permitted provided that the following conditions are met:
8*cfb92d14SAndroid Build Coastguard Worker#  1. Redistributions of source code must retain the above copyright
9*cfb92d14SAndroid Build Coastguard Worker#     notice, this list of conditions and the following disclaimer.
10*cfb92d14SAndroid Build Coastguard Worker#  2. Redistributions in binary form must reproduce the above copyright
11*cfb92d14SAndroid Build Coastguard Worker#     notice, this list of conditions and the following disclaimer in the
12*cfb92d14SAndroid Build Coastguard Worker#     documentation and/or other materials provided with the distribution.
13*cfb92d14SAndroid Build Coastguard Worker#  3. Neither the name of the copyright holder nor the
14*cfb92d14SAndroid Build Coastguard Worker#     names of its contributors may be used to endorse or promote products
15*cfb92d14SAndroid Build Coastguard Worker#     derived from this software without specific prior written permission.
16*cfb92d14SAndroid Build Coastguard Worker#
17*cfb92d14SAndroid Build Coastguard Worker#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18*cfb92d14SAndroid Build Coastguard Worker#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*cfb92d14SAndroid Build Coastguard Worker#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*cfb92d14SAndroid Build Coastguard Worker#  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21*cfb92d14SAndroid Build Coastguard Worker#  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22*cfb92d14SAndroid Build Coastguard Worker#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23*cfb92d14SAndroid Build Coastguard Worker#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*cfb92d14SAndroid Build Coastguard Worker#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25*cfb92d14SAndroid Build Coastguard Worker#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*cfb92d14SAndroid Build Coastguard Worker#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27*cfb92d14SAndroid Build Coastguard Worker#  POSSIBILITY OF SUCH DAMAGE.
28*cfb92d14SAndroid Build Coastguard Worker#
29*cfb92d14SAndroid Build Coastguard Worker
30*cfb92d14SAndroid Build Coastguard Workerset -euxo pipefail
31*cfb92d14SAndroid Build Coastguard Worker
32*cfb92d14SAndroid Build Coastguard Worker: "${CFLAGS:=}"
33*cfb92d14SAndroid Build Coastguard Worker: "${CXXFLAGS:=}"
34*cfb92d14SAndroid Build Coastguard Worker
35*cfb92d14SAndroid Build Coastguard WorkerOT_BUILDDIR="$(pwd)/build"
36*cfb92d14SAndroid Build Coastguard Workerreadonly OT_BUILDDIR
37*cfb92d14SAndroid Build Coastguard Worker
38*cfb92d14SAndroid Build Coastguard Workerreset_source()
39*cfb92d14SAndroid Build Coastguard Worker{
40*cfb92d14SAndroid Build Coastguard Worker    rm -rf "$OT_BUILDDIR"
41*cfb92d14SAndroid Build Coastguard Worker}
42*cfb92d14SAndroid Build Coastguard Worker
43*cfb92d14SAndroid Build Coastguard Workerbuild_all_features()
44*cfb92d14SAndroid Build Coastguard Worker{
45*cfb92d14SAndroid Build Coastguard Worker    local cppflags=(
46*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_ANNOUNCE_SENDER_ENABLE=1"
47*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_ANYCAST_LOCATOR=1"
48*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_BORDER_AGENT_ENABLE=1"
49*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE=1"
50*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE=1"
51*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE=1"
52*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE=1"
53*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_COAP_API_ENABLE=1"
54*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1"
55*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1"
56*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE=1"
57*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1"
58*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1"
59*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1"
60*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1"
61*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DNS_DSO_ENABLE=1"
62*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1"
63*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE=1"
64*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_HISTORY_TRACKER_ENABLE=1"
65*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_IP6_FRAGMENTATION_ENABLE=1"
66*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_IP6_SLAAC_ENABLE=1"
67*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_JAM_DETECTION_ENABLE=1"
68*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_JOINER_ENABLE=1"
69*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_LINK_RAW_ENABLE=1"
70*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1"
71*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_BEACON_RSP_WHEN_JOINABLE_ENABLE=1"
72*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1"
73*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_ENABLE=1"
74*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_SOFTWARE_ACK_TIMEOUT_ENABLE=1"
75*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_SOFTWARE_CSMA_BACKOFF_ENABLE=1"
76*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_SOFTWARE_ENERGY_SCAN_ENABLE=1"
77*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_SOFTWARE_RETRANSMIT_ENABLE=1"
78*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_SOFTWARE_TX_SECURITY_ENABLE=1"
79*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MLE_ATTACH_BACKOFF_ENABLE=1"
80*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MLE_STEERING_DATA_SET_OOB_ENABLE=1"
81*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MPL_DYNAMIC_INTERVAL_ENABLE"
82*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1"
83*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_NCP_SPI_ENABLE=1"
84*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1"
85*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=1"
86*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_RADIO_COEX_ENABLE=1"
87*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_USEC_TIMER_ENABLE=1"
88*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE=1"
89*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_SNTP_CLIENT_ENABLE=1"
90*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1"
91*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1"
92*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE=1"
93*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_UDP_FORWARD_ENABLE=1"
94*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_BEACON_PAYLOAD_PARSING_ENABLE=1"
95*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_OUTGOING_BEACON_PAYLOAD_ENABLE=1"
96*cfb92d14SAndroid Build Coastguard Worker    )
97*cfb92d14SAndroid Build Coastguard Worker
98*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 with full features
99*cfb92d14SAndroid Build Coastguard Worker    reset_source
100*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
101*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation \
102*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1
103*cfb92d14SAndroid Build Coastguard Worker
104*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 with full features and no log
105*cfb92d14SAndroid Build Coastguard Worker    reset_source
106*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
107*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation \
108*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
109*cfb92d14SAndroid Build Coastguard Worker        -DOT_LOG_OUTPUT=NONE
110*cfb92d14SAndroid Build Coastguard Worker
111*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 with full features and full logs
112*cfb92d14SAndroid Build Coastguard Worker    reset_source
113*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
114*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation \
115*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
116*cfb92d14SAndroid Build Coastguard Worker        -DOT_FULL_LOGS=ON
117*cfb92d14SAndroid Build Coastguard Worker
118*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 cli-radio
119*cfb92d14SAndroid Build Coastguard Worker    reset_source
120*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation \
121*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
122*cfb92d14SAndroid Build Coastguard Worker        -DOT_DIAGNOSTIC=ON \
123*cfb92d14SAndroid Build Coastguard Worker        -DOT_APP_CLI=ON \
124*cfb92d14SAndroid Build Coastguard Worker        -DOT_APP_NCP=OFF \
125*cfb92d14SAndroid Build Coastguard Worker        -DOT_APP_RCP=OFF \
126*cfb92d14SAndroid Build Coastguard Worker        -DOT_FTD=OFF \
127*cfb92d14SAndroid Build Coastguard Worker        -DOT_MTD=OFF
128*cfb92d14SAndroid Build Coastguard Worker
129*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 with ASSERT disabled
130*cfb92d14SAndroid Build Coastguard Worker    reset_source
131*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
132*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation \
133*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
134*cfb92d14SAndroid Build Coastguard Worker        -DOT_SIMULATION_VIRTUAL_TIME=ON \
135*cfb92d14SAndroid Build Coastguard Worker        -DOT_ASSERT=OFF
136*cfb92d14SAndroid Build Coastguard Worker
137*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.1 OTNS
138*cfb92d14SAndroid Build Coastguard Worker    reset_source
139*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
140*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation \
141*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
142*cfb92d14SAndroid Build Coastguard Worker        -DOT_SIMULATION_VIRTUAL_TIME=ON \
143*cfb92d14SAndroid Build Coastguard Worker        -DOT_OTNS=ON
144*cfb92d14SAndroid Build Coastguard Worker
145*cfb92d14SAndroid Build Coastguard Worker    # Thread 1.3 options
146*cfb92d14SAndroid Build Coastguard Worker    local options=(
147*cfb92d14SAndroid Build Coastguard Worker        "-DOT_BACKBONE_ROUTER=ON"
148*cfb92d14SAndroid Build Coastguard Worker        "-DOT_BORDER_ROUTING=ON"
149*cfb92d14SAndroid Build Coastguard Worker        "-DOT_NAT64_BORDER_ROUTING=ON"
150*cfb92d14SAndroid Build Coastguard Worker        "-DOT_NAT64_TRANSLATOR=ON"
151*cfb92d14SAndroid Build Coastguard Worker        "-DOT_CSL_RECEIVER=ON"
152*cfb92d14SAndroid Build Coastguard Worker        "-DOT_MLR=ON"
153*cfb92d14SAndroid Build Coastguard Worker        "-DOT_OTNS=ON"
154*cfb92d14SAndroid Build Coastguard Worker        "-DOT_SIMULATION_VIRTUAL_TIME=ON"
155*cfb92d14SAndroid Build Coastguard Worker        "-DOT_THREAD_VERSION=1.3"
156*cfb92d14SAndroid Build Coastguard Worker    )
157*cfb92d14SAndroid Build Coastguard Worker
158*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with full features
159*cfb92d14SAndroid Build Coastguard Worker    reset_source
160*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
161*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_DUA=ON
162*cfb92d14SAndroid Build Coastguard Worker
163*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with external heap and msg pool using heap
164*cfb92d14SAndroid Build Coastguard Worker    reset_source
165*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS} -DOPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE=1" \
166*cfb92d14SAndroid Build Coastguard Worker        CXXFLAGS="${cppflags[*]} ${CXXFLAGS} -DOPENTHREAD_CONFIG_MESSAGE_USE_HEAP_ENABLE=1" \
167*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_DUA=ON
168*cfb92d14SAndroid Build Coastguard Worker
169*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with full features and no log
170*cfb92d14SAndroid Build Coastguard Worker    reset_source
171*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
172*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_DUA=ON -DOT_LOG_OUTPUT=NONE
173*cfb92d14SAndroid Build Coastguard Worker
174*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with full features and full logs
175*cfb92d14SAndroid Build Coastguard Worker    reset_source
176*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
177*cfb92d14SAndroid Build Coastguard Worker        "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_DUA=ON -DOT_FULL_LOGS=ON
178*cfb92d14SAndroid Build Coastguard Worker
179*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 Backbone Router without DUA ND Proxying
180*cfb92d14SAndroid Build Coastguard Worker    reset_source
181*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_BACKBONE_ROUTER_DUA_NDPROXYING=OFF
182*cfb92d14SAndroid Build Coastguard Worker
183*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 Backbone Router without Multicast Routing
184*cfb92d14SAndroid Build Coastguard Worker    reset_source
185*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_BACKBONE_ROUTER_MULTICAST_ROUTING=OFF
186*cfb92d14SAndroid Build Coastguard Worker
187*cfb92d14SAndroid Build Coastguard Worker    # Build with Vendor Extension
188*cfb92d14SAndroid Build Coastguard Worker    reset_source
189*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation \
190*cfb92d14SAndroid Build Coastguard Worker        -DOT_THREAD_VERSION=1.1 \
191*cfb92d14SAndroid Build Coastguard Worker        -DOT_VENDOR_EXTENSION=../../src/core/instance/extension_example.cpp
192*cfb92d14SAndroid Build Coastguard Worker
193*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with no additional features
194*cfb92d14SAndroid Build Coastguard Worker    reset_source
195*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation -DOT_THREAD_VERSION=1.3
196*cfb92d14SAndroid Build Coastguard Worker
197*cfb92d14SAndroid Build Coastguard Worker    # Build Thread 1.3 with full features and OT_ASSERT=OFF
198*cfb92d14SAndroid Build Coastguard Worker    reset_source
199*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation "${options[@]}" -DOT_DUA=ON -DOT_ASSERT=OFF
200*cfb92d14SAndroid Build Coastguard Worker
201*cfb92d14SAndroid Build Coastguard Worker    # Build with RAM settings
202*cfb92d14SAndroid Build Coastguard Worker    reset_source
203*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation -DOT_SETTINGS_RAM=ON
204*cfb92d14SAndroid Build Coastguard Worker
205*cfb92d14SAndroid Build Coastguard Worker    reset_source
206*cfb92d14SAndroid Build Coastguard Worker    "$(dirname "$0")"/cmake-build simulation -DOT_BLE_TCAT=ON
207*cfb92d14SAndroid Build Coastguard Worker}
208*cfb92d14SAndroid Build Coastguard Worker
209*cfb92d14SAndroid Build Coastguard Workerbuild_nest_common()
210*cfb92d14SAndroid Build Coastguard Worker{
211*cfb92d14SAndroid Build Coastguard Worker    local cppflags=(
212*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE=1"
213*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE=1"
214*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE=1"
215*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE=1"
216*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1"
217*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_JAM_DETECTION_ENABLE=1"
218*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1"
219*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1"
220*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_NCP_SPI_ENABLE=1"
221*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=1"
222*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1"
223*cfb92d14SAndroid Build Coastguard Worker    )
224*cfb92d14SAndroid Build Coastguard Worker
225*cfb92d14SAndroid Build Coastguard Worker    reset_source
226*cfb92d14SAndroid Build Coastguard Worker    mkdir build && cd build
227*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
228*cfb92d14SAndroid Build Coastguard Worker        cmake -GNinja -DOT_PLATFORM=simulation ..
229*cfb92d14SAndroid Build Coastguard Worker    ninja
230*cfb92d14SAndroid Build Coastguard Worker    cd ..
231*cfb92d14SAndroid Build Coastguard Worker
232*cfb92d14SAndroid Build Coastguard Worker    cppflags=(
233*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_ANOUNCE_SENDER_ENABLE=1"
234*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=1"
235*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_TIME_SYNC_ENABLE=1"
236*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1"
237*cfb92d14SAndroid Build Coastguard Worker    )
238*cfb92d14SAndroid Build Coastguard Worker
239*cfb92d14SAndroid Build Coastguard Worker    reset_source
240*cfb92d14SAndroid Build Coastguard Worker    mkdir build && cd build
241*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
242*cfb92d14SAndroid Build Coastguard Worker        cmake -GNinja -DOT_PLATFORM=simulation ..
243*cfb92d14SAndroid Build Coastguard Worker    ninja
244*cfb92d14SAndroid Build Coastguard Worker    cd ..
245*cfb92d14SAndroid Build Coastguard Worker
246*cfb92d14SAndroid Build Coastguard Worker    cppflags=(
247*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1"
248*cfb92d14SAndroid Build Coastguard Worker        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=1"
249*cfb92d14SAndroid Build Coastguard Worker    )
250*cfb92d14SAndroid Build Coastguard Worker
251*cfb92d14SAndroid Build Coastguard Worker    reset_source
252*cfb92d14SAndroid Build Coastguard Worker    mkdir build && cd build
253*cfb92d14SAndroid Build Coastguard Worker    CFLAGS="${cppflags[*]} ${CFLAGS}" CXXFLAGS="${cppflags[*]} ${CXXFLAGS}" \
254*cfb92d14SAndroid Build Coastguard Worker        cmake -GNinja -DOT_PLATFORM=simulation \
255*cfb92d14SAndroid Build Coastguard Worker        -DOT_VENDOR_EXTENSION=instance/extension_example.cpp \
256*cfb92d14SAndroid Build Coastguard Worker        -DOT_NCP_VENDOR_HOOK_SOURCE=example_vendor_hook.cpp \
257*cfb92d14SAndroid Build Coastguard Worker        ..
258*cfb92d14SAndroid Build Coastguard Worker    ninja
259*cfb92d14SAndroid Build Coastguard Worker    cd ..
260*cfb92d14SAndroid Build Coastguard Worker}
261*cfb92d14SAndroid Build Coastguard Worker
262*cfb92d14SAndroid Build Coastguard Workerbuild_multi_radio_links()
263*cfb92d14SAndroid Build Coastguard Worker{
264*cfb92d14SAndroid Build Coastguard Worker    # TREL radio link only.
265*cfb92d14SAndroid Build Coastguard Worker    reset_source
266*cfb92d14SAndroid Build Coastguard Worker    ./script/cmake-build simulation -DOT_LOG_LEVEL=DEBG \
267*cfb92d14SAndroid Build Coastguard Worker        -DOT_TREL=OFF -DOT_15_4=ON
268*cfb92d14SAndroid Build Coastguard Worker
269*cfb92d14SAndroid Build Coastguard Worker    # Multi radio link - 15.4 and TREL.
270*cfb92d14SAndroid Build Coastguard Worker    reset_source
271*cfb92d14SAndroid Build Coastguard Worker    ./script/cmake-build simulation -DOT_LOG_LEVEL=DEBG \
272*cfb92d14SAndroid Build Coastguard Worker        -DOT_TREL=ON -DOT_15_4=ON
273*cfb92d14SAndroid Build Coastguard Worker}
274*cfb92d14SAndroid Build Coastguard Workermain()
275*cfb92d14SAndroid Build Coastguard Worker{
276*cfb92d14SAndroid Build Coastguard Worker    build_all_features
277*cfb92d14SAndroid Build Coastguard Worker    build_nest_common
278*cfb92d14SAndroid Build Coastguard Worker    build_multi_radio_links
279*cfb92d14SAndroid Build Coastguard Worker}
280*cfb92d14SAndroid Build Coastguard Worker
281*cfb92d14SAndroid Build Coastguard Workermain "$@"
282