blob: 67269b05afcce922d72d1848f2c62310ef0ea037 [file] [log] [blame]
Andrew Geissler8fc454f2020-12-11 16:27:59 -06001SUMMARY = "Canonical libwebsockets.org websocket library"
2HOMEPAGE = "https://libwebsockets.org/"
Andrew Geissler69721092021-07-23 12:57:00 -04003LICENSE = "MIT & Zlib & BSD-3-Clause & Apache-2.0"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -05004LIC_FILES_CHKSUM = "file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b"
Andrew Geissler8fc454f2020-12-11 16:27:59 -06005
6DEPENDS = "zlib"
7
8S = "${WORKDIR}/git"
Patrick Williamsdb4c27e2022-08-05 08:10:29 -05009SRCREV = "b0a749c8e7a8294b68581ce4feac0e55045eb00b"
Patrick Williamsb9af8752023-01-30 13:28:01 -060010SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;branch=v4.3-stable \
11 file://0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch"
Andrew Geissler8fc454f2020-12-11 16:27:59 -060012
13UPSTREAM_CHECK_URI = "https://github.com/warmcat/${BPN}/releases"
14UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
15
16inherit cmake pkgconfig
17
Andrew Geissler517393d2023-01-13 08:55:19 -060018PACKAGECONFIG ?= "libuv client server http2 ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
Andrew Geissler8fc454f2020-12-11 16:27:59 -060019PACKAGECONFIG[client] = "-DLWS_WITHOUT_CLIENT=OFF,-DLWS_WITHOUT_CLIENT=ON,"
20PACKAGECONFIG[http2] = "-DLWS_WITH_HTTP2=ON,-DLWS_WITH_HTTP2=OFF,"
21PACKAGECONFIG[ipv6] = "-DLWS_IPV6=ON,-DLWS_IPV6=OFF,"
22PACKAGECONFIG[libevent] = "-DLWS_WITH_LIBEVENT=ON,-DLWS_WITH_LIBEVENT=OFF,libevent"
23PACKAGECONFIG[libev] = "-DLWS_WITH_LIBEV=ON,-DLWS_WITH_LIBEV=OFF,libev"
24PACKAGECONFIG[libuv] = "-DLWS_WITH_LIBUV=ON,-DLWS_WITH_LIBUV=OFF,libuv"
25PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON,"
26PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl"
27PACKAGECONFIG[static] = "-DLWS_WITH_STATIC=ON,-DLWS_WITH_STATIC=OFF -DLWS_LINK_TESTAPPS_DYNAMIC=ON,"
Patrick Williams8dd68482022-10-04 07:57:18 -050028PACKAGECONFIG[systemd] = "-DLWS_WITH_SDEVENT=ON,-DLWS_WITH_SDEVENT=OFF,systemd"
29
30python __anonymous() {
31 if bb.utils.contains('PACKAGECONFIG', 'systemd', True, False, d) and not bb.utils.contains('DISTRO_FEATURES', 'systemd', True, False, d):
32 bb.fatal("PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't")
33}
Andrew Geissler8fc454f2020-12-11 16:27:59 -060034
35EXTRA_OECMAKE += " \
36 -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
37"
38
Patrick Williams8dd68482022-10-04 07:57:18 -050039PACKAGES =+ "${PN}-testapps ${PN}-evlib-event ${PN}-evlib-uv ${PN}-evlib-ev ${PN}-evlib-sd"
Andrew Geissler8fc454f2020-12-11 16:27:59 -060040
Patrick Williams213cb262021-08-07 19:21:33 -050041FILES:${PN}-testapps += "${datadir}/libwebsockets-test-server/* ${bindir}/libwebsockets-test-*"
42FILES:${PN}-evlib-event += "${libdir}/libwebsockets-evlib_event.so"
43FILES:${PN}-evlib-uv += "${libdir}/libwebsockets-evlib_uv.so"
44FILES:${PN}-evlib-ev += "${libdir}/libwebsockets-evlib_ev.so"
Patrick Williams8dd68482022-10-04 07:57:18 -050045FILES:${PN}-evlib-sd += "${libdir}/libwebsockets-evlib_sd.so"
Andrew Geissler8fc454f2020-12-11 16:27:59 -060046
Patrick Williams213cb262021-08-07 19:21:33 -050047RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libevent', '${PN}-evlib-event', '', d)}"
48RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libuv', '${PN}-evlib-uv', '', d)}"
49RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'libev', '${PN}-evlib-ev', '', d)}"
Patrick Williams8dd68482022-10-04 07:57:18 -050050RDEPENDS:${PN} += " ${@bb.utils.contains('PACKAGECONFIG', 'systemd', '${PN}-evlib-sd', '', d)}"
Andrew Geissler8fc454f2020-12-11 16:27:59 -060051
Patrick Williams213cb262021-08-07 19:21:33 -050052RDEPENDS:${PN}-dev += " ${@bb.utils.contains('PACKAGECONFIG', 'static', '${PN}-staticdev', '', d)}"
Andrew Geisslerd5838332022-05-27 11:33:10 -050053
54# Avoid absolute paths to end up in the sysroot.
55SSTATE_SCAN_FILES += "*.cmake"