summaryrefslogtreecommitdiff
blob: b0fe7aa758df597b5d078d6567663fb31d0c92c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit cmake flag-o-matic

DESCRIPTION="A flexible pure-C library for implementing network protocols"
HOMEPAGE="https://libwebsockets.org/"
SRC_URI="https://github.com/warmcat/libwebsockets/archive/v${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="MIT"
SLOT="0/16" # libwebsockets.so.16
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE="access-log caps cgi client dbus generic-sessions http-proxy http2 ipv6
	+lejp libev libevent libressl libuv mbedtls peer-limits server-status smtp socks5
	sqlite3 ssl static-libs threads zip"

REQUIRED_USE="
	access-log? ( http2 )
	generic-sessions? ( smtp sqlite3 )
	http-proxy? ( client )
	smtp? ( libuv )
	ssl? ( ?? ( libressl mbedtls ) )
	?? ( libev libevent )
"

RDEPEND="
	sys-libs/zlib
	caps? ( sys-libs/libcap )
	http-proxy? ( net-libs/libhubbub )
	libev? ( dev-libs/libev )
	libevent? ( dev-libs/libevent:= )
	libuv? ( dev-libs/libuv:= )
	sqlite3? ( dev-db/sqlite:= )
	ssl? (
		!libressl? (
			!mbedtls? ( dev-libs/openssl:0= )
			mbedtls? ( >net-libs/mbedtls-2.0.0 )
		)
	)
"
DEPEND="${RDEPEND}"
BDEPEND="dev-lang/perl"

PATCHES=(
	"${FILESDIR}/libwebsockets-3.2.0-check_chown_result.patch"
)

src_configure() {
	append-cflags -Wno-error
	local mycmakeargs=(
		-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
		-DLWS_HAVE_LIBCAP=$(usex caps)
		-DLWS_IPV6=$(usex ipv6)
		-DLWS_ROLE_DBUS=$(usex dbus)
		-DLWS_WITHOUT_CLIENT=$(usex !client)
		-DLWS_WITHOUT_TEST_CLIENT=$(usex !client)
		-DLWS_WITH_ACCESS_LOG=$(usex access-log)
		-DLWS_WITH_CGI=$(usex cgi)
		-DLWS_WITH_GENERIC_SESSIONS=$(usex generic-sessions)
		-DLWS_WITH_HTTP2=$(usex http2)
		-DLWS_WITH_HTTP_PROXY=$(usex http-proxy)
		-DLWS_WITH_HUBBUB=$(usex http-proxy)
		-DLWS_WITH_LEJP=$(usex lejp)
		-DLWS_WITH_LIBEV=$(usex libev)
		-DLWS_WITH_LIBEVENT=$(usex libevent)
		-DLWS_WITH_LIBUV=$(usex libuv)
		-DLWS_WITH_MBEDTLS=$(usex mbedtls)
		-DLWS_WITH_PEER_LIMITS=$(usex peer-limits)
		-DLWS_WITH_SERVER_STATUS=$(usex server-status)
		-DLWS_WITH_SMTP=$(usex smtp)
		-DLWS_WITH_SOCKS5=$(usex socks5)
		-DLWS_WITH_SQLITE3=$(usex sqlite3)
		-DLWS_WITH_SSL=$(usex ssl)
		-DLWS_WITH_STATIC=$(usex static-libs)
		-DLWS_WITH_THREADPOOL=$(usex threads)
		-DLWS_WITH_ZIP_FOPS=$(usex zip)
		-DLWS_WITHOUT_TESTAPPS=ON
	)

	cmake_src_configure
}