1# SPDX-FileCopyrightText: Huawei Inc.
2#
3# SPDX-License-Identifier: Apache-2.0
4SUMMARY = "OpenThread Border Router"
5SECTION = "net"
6LICENSE = "BSD-3-Clause & MIT"
7LIC_FILES_CHKSUM = "file://LICENSE;md5=87109e44b2fda96a8991f27684a7349c \
8                    file://third_party/Simple-web-server/repo/LICENSE;md5=091ac9fd29d87ad1ae5bf765d95278b0 \
9                    file://third_party/cJSON/repo/LICENSE;md5=218947f77e8cb8e2fa02918dc41c50d0 \
10                    file://third_party/http-parser/repo/LICENSE-MIT;md5=9bfa835d048c194ab30487af8d7b3778 \
11                    file://third_party/openthread/repo/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
12                    "
13DEPENDS = "autoconf-archive dbus readline avahi jsoncpp boost libnetfilter-queue protobuf protobuf-native"
14SRCREV = "a35cc682305bb2201c314472adf06a4960536750"
15PV = "0.3.0+git"
16
17SRC_URI = "gitsm://github.com/openthread/ot-br-posix.git;protocol=https;branch=main \
18           file://0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch \
19           file://0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch \
20           file://default-cxx-std.patch \
21           file://musl-fixes.patch \
22           "
23
24S = "${WORKDIR}/git"
25SYSTEMD_SERVICE:${PN} = "otbr-agent.service"
26
27inherit pkgconfig cmake systemd
28# openthread/repo/src/cli/cli.cpp:1786:18: fatal error: variable 'i' set but not used [-Wunused-but-set-variable]
29#    for (uint8_t i = 0;; i++)
30CXXFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare -Wno-error=unused-but-set-variable"
31
32EXTRA_OECMAKE = "-DBUILD_TESTING=OFF \
33                 -DOTBR_DBUS=ON \
34                 -DOTBR_REST=ON \
35                 -DOTBR_WEB=OFF \
36                 -DCMAKE_LIBRARY_PATH=${libdir} \
37                 -DOTBR_MDNS=avahi \
38                 -DOTBR_BACKBONE_ROUTER=ON \
39                 -DOTBR_BORDER_ROUTING=ON \
40                 -DOTBR_SRP_ADVERTISING_PROXY=ON \
41                 -DOTBR_BORDER_AGENT=ON \
42                 -DOT_SPINEL_RESET_CONNECTION=ON \
43                 -DOT_TREL=ON \
44                 -DOT_MLR=ON \
45                 -DOT_SRP_SERVER=ON \
46                 -DOT_ECDSA=ON \
47                 -DOT_SERVICE=ON \
48                 -DOTBR_DUA_ROUTING=ON \
49                 -DOT_DUA=ON \
50                 -DOT_BORDER_ROUTING_NAT64=ON \
51                 -DOTBR_DNSSD_DISCOVERY_PROXY=ON \
52                 -DOTBR_INFRA_IF_NAME=eth0 \
53                 -DOTBR_NO_AUTO_ATTACH=1 \
54                 -DOT_REFERENCE_DEVICE=ON \
55                 -DOT_DHCP6_CLIENT=ON \
56                 -DOT_DHCP6_SERVER=ON \
57                 "
58EXTRA_OECMAKE:append:libc-musl = " -DOT_TARGET_MUSL=ON"
59
60RDEPENDS:${PN} = "iproute2 ipset avahi-daemon"
61
62RCONFLICTS:${PN} = "ot-daemon"
63
64FILES:${PN} += "${systemd_unitdir}/*"
65FILES:${PN} += "${datadir}/*"
66