blob: 463b75886b7b851d0bb44b7c04d17072795769c4 [file] [log] [blame]
Brian Silvermanaa651172015-09-26 17:39:06 -04001licenses(['notice'])
2
Austin Schuh4f857292018-02-15 23:42:04 -08003load('//tools/build_rules:select.bzl', 'compiler_select', 'address_size_select')
Austin Schuh23da18b2015-10-11 20:52:49 -07004
Brian Silvermanaa651172015-09-26 17:39:06 -04005cc_library(
6 name = 'libevent',
7 visibility = ['//visibility:public'],
8 srcs = [
9 'select.c',
10 'poll.c',
11 'epoll.c',
12 'signal.c',
13
14 'event.c',
15 'evthread.c',
16 'buffer.c',
17 'bufferevent.c',
18 'bufferevent_sock.c',
19 'bufferevent_filter.c',
20 'bufferevent_pair.c',
21 'listener.c',
22 'bufferevent_ratelim.c',
23 'evmap.c',
24 'log.c',
25 'evutil.c',
26 'evutil_rand.c',
27 'strlcpy.c',
28
29 'event_tagging.c',
30 'http.c',
31 'evdns.c',
32 'evrpc.c',
33
34 'evthread_pthread.c',
35
Brian Silvermanaa651172015-09-26 17:39:06 -040036 #'compat/sys/queue.h',
37 ] + glob([
38 '*-internal.h',
Brian Silvermanb2215d02015-11-23 19:10:15 -050039 'include/event2/*.h',
Brian Silvermanaa651172015-09-26 17:39:06 -040040 ]),
Brian Silvermanb2215d02015-11-23 19:10:15 -050041 textual_hdrs = [
42 'arc4random.c',
43 ],
Brian Silvermanaa651172015-09-26 17:39:06 -040044 hdrs = [
45 'event.h',
46 'evhttp.h',
47 'evdns.h',
48 'evrpc.h',
49 'evutil.h',
50 ],
51 includes = ['.', 'include'],
Brian Silvermane296d002015-10-12 02:28:11 -040052 defines = [
53 '_EVENT_HAVE_ARPA_INET_H=1',
54 '_EVENT_HAVE_CLOCK_GETTIME=1',
55 '_EVENT_HAVE_DECL_CTL_KERN=1',
56 '_EVENT_HAVE_DECL_KERN_ARND=0',
57 '_EVENT_HAVE_DECL_KERN_RANDOM=1',
58 '_EVENT_HAVE_DECL_RANDOM_UUID=1',
59 '_EVENT_HAVE_DLFCN_H=1',
60 '_EVENT_HAVE_EPOLL=1',
61 '_EVENT_HAVE_EPOLL_CTL=1',
62 '_EVENT_HAVE_EVENTFD=1',
63 '_EVENT_HAVE_FCNTL=1',
64 '_EVENT_HAVE_FCNTL_H=1',
65 '_EVENT_HAVE_FD_MASK=1',
66 '_EVENT_HAVE_GETADDRINFO=1',
67 '_EVENT_HAVE_GETEGID=1',
68 '_EVENT_HAVE_GETEUID=1',
69 '_EVENT_HAVE_GETNAMEINFO=1',
70 '_EVENT_HAVE_GETPROTOBYNUMBER=1',
71 '_EVENT_HAVE_GETTIMEOFDAY=1',
72 '_EVENT_HAVE_INET_ATON=1',
73 '_EVENT_HAVE_INET_NTOP=1',
74 '_EVENT_HAVE_INET_PTON=1',
75 '_EVENT_HAVE_INTTYPES_H=1',
76 '_EVENT_HAVE_MEMORY_H=1',
77 '_EVENT_HAVE_MMAP=1',
78 '_EVENT_HAVE_NETDB_H=1',
79 '_EVENT_HAVE_NETINET_IN_H=1',
80 '_EVENT_HAVE_PIPE=1',
81 '_EVENT_HAVE_POLL=1',
82 '_EVENT_HAVE_POLL_H=1',
83 '_EVENT_HAVE_PTHREADS=1',
84 '_EVENT_HAVE_PUTENV=1',
85 '_EVENT_HAVE_SA_FAMILY_T=1',
86 '_EVENT_HAVE_SELECT=1',
87 '_EVENT_HAVE_SENDFILE=1',
88 '_EVENT_HAVE_SETENV=1',
89 '_EVENT_HAVE_SETFD=1',
90 '_EVENT_HAVE_SIGACTION=1',
91 '_EVENT_HAVE_SIGNAL=1',
92 '_EVENT_HAVE_SPLICE=1',
93 '_EVENT_HAVE_STDARG_H=1',
94 '_EVENT_HAVE_STDDEF_H=1',
95 '_EVENT_HAVE_STDINT_H=1',
96 '_EVENT_HAVE_STDLIB_H=1',
97 '_EVENT_HAVE_STRINGS_H=1',
98 '_EVENT_HAVE_STRING_H=1',
99 '_EVENT_HAVE_STRSEP=1',
100 '_EVENT_HAVE_STRTOK_R=1',
101 '_EVENT_HAVE_STRTOLL=1',
102 '_EVENT_HAVE_STRUCT_ADDRINFO=1',
103 '_EVENT_HAVE_STRUCT_IN6_ADDR=1',
104 '_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16=1',
105 '_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32=1',
106 '_EVENT_HAVE_STRUCT_SOCKADDR_IN6=1',
107 '_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE=1',
108 '_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1',
109 '_EVENT_HAVE_SYSCTL=1',
110 '_EVENT_HAVE_SYS_EPOLL_H=1',
111 '_EVENT_HAVE_SYS_EVENTFD_H=1',
112 '_EVENT_HAVE_SYS_IOCTL_H=1',
113 '_EVENT_HAVE_SYS_MMAN_H=1',
114 '_EVENT_HAVE_SYS_PARAM_H=1',
115 '_EVENT_HAVE_SYS_QUEUE_H=1',
116 '_EVENT_HAVE_SYS_SELECT_H=1',
117 '_EVENT_HAVE_SYS_SENDFILE_H=1',
118 '_EVENT_HAVE_SYS_SOCKET_H=1',
119 '_EVENT_HAVE_SYS_STAT_H=1',
120 '_EVENT_HAVE_SYS_SYSCTL_H=1',
121 '_EVENT_HAVE_SYS_TIME_H=1',
122 '_EVENT_HAVE_SYS_TYPES_H=1',
123 '_EVENT_HAVE_SYS_UIO_H=1',
124 '_EVENT_HAVE_SYS_WAIT_H=1',
Brian Silvermane296d002015-10-12 02:28:11 -0400125 '_EVENT_HAVE_TIMERADD=1',
126 '_EVENT_HAVE_TIMERCLEAR=1',
127 '_EVENT_HAVE_TIMERCMP=1',
128 '_EVENT_HAVE_TIMERISSET=1',
129 '_EVENT_HAVE_UINT16_T=1',
130 '_EVENT_HAVE_UINT32_T=1',
131 '_EVENT_HAVE_UINT64_T=1',
132 '_EVENT_HAVE_UINT8_T=1',
133 '_EVENT_HAVE_UINTPTR_T=1',
134 '_EVENT_HAVE_UMASK=1',
135 '_EVENT_HAVE_UNISTD_H=1',
136 '_EVENT_HAVE_UNSETENV=1',
137 '_EVENT_HAVE_VASPRINTF=1',
Brian Silvermane296d002015-10-12 02:28:11 -0400138 '_EVENT_SIZEOF_INT=4',
139 '_EVENT_SIZEOF_LONG=8',
140 '_EVENT_SIZEOF_SHORT=2',
141 '_EVENT_STDC_HEADERS=1',
142 '_EVENT_TIME_WITH_SYS_TIME=1',
143
144 '_EVENT_NUMERIC_VERSION=0x02001600',
145 '_EVENT_VERSION=\\"2.0.22-stable\\"',
146 ] + address_size_select({
147 '32': [
148 '_EVENT_SIZEOF_LONG_LONG=4',
149 '_EVENT_SIZEOF_OFF_T=4',
150 '_EVENT_SIZEOF_PTHREAD_T=4',
151 '_EVENT_SIZEOF_SIZE_T=4',
152 '_EVENT_SIZEOF_VOID_P=4',
153 ],
154 '64': [
155 '_EVENT_SIZEOF_LONG_LONG=8',
156 '_EVENT_SIZEOF_OFF_T=8',
157 '_EVENT_SIZEOF_PTHREAD_T=8',
158 '_EVENT_SIZEOF_SIZE_T=8',
159 '_EVENT_SIZEOF_VOID_P=8',
160 ],
161 }),
162
Brian Silvermanaa651172015-09-26 17:39:06 -0400163 copts = [
164 '-Ithird_party/libevent/compat',
165 '-Ithird_party/libevent/include',
Brian Silvermanf1cff392015-10-11 19:36:18 -0400166
167 # TODO(Brian): Fix the places in the code it uses char* as an intermediate
168 # type while doing offsetof stuff.
169 '-Wno-cast-align',
170
171 '-Wno-unused-parameter',
172 '-Wno-format-nonliteral',
173 '-Wno-cast-qual',
Brian Silvermanf1cff392015-10-11 19:36:18 -0400174 '-Wno-unused-function',
Austin Schuh23da18b2015-10-11 20:52:49 -0700175 ] + compiler_select({
176 'gcc': [],
177 'clang': ['-Wno-incompatible-pointer-types-discards-qualifiers']
178 }),
Brian Silvermane296d002015-10-12 02:28:11 -0400179 )