blob: 463b75886b7b851d0bb44b7c04d17072795769c4 [file] [log] [blame]
licenses(['notice'])
load('//tools/build_rules:select.bzl', 'compiler_select', 'address_size_select')
cc_library(
name = 'libevent',
visibility = ['//visibility:public'],
srcs = [
'select.c',
'poll.c',
'epoll.c',
'signal.c',
'event.c',
'evthread.c',
'buffer.c',
'bufferevent.c',
'bufferevent_sock.c',
'bufferevent_filter.c',
'bufferevent_pair.c',
'listener.c',
'bufferevent_ratelim.c',
'evmap.c',
'log.c',
'evutil.c',
'evutil_rand.c',
'strlcpy.c',
'event_tagging.c',
'http.c',
'evdns.c',
'evrpc.c',
'evthread_pthread.c',
#'compat/sys/queue.h',
] + glob([
'*-internal.h',
'include/event2/*.h',
]),
textual_hdrs = [
'arc4random.c',
],
hdrs = [
'event.h',
'evhttp.h',
'evdns.h',
'evrpc.h',
'evutil.h',
],
includes = ['.', 'include'],
defines = [
'_EVENT_HAVE_ARPA_INET_H=1',
'_EVENT_HAVE_CLOCK_GETTIME=1',
'_EVENT_HAVE_DECL_CTL_KERN=1',
'_EVENT_HAVE_DECL_KERN_ARND=0',
'_EVENT_HAVE_DECL_KERN_RANDOM=1',
'_EVENT_HAVE_DECL_RANDOM_UUID=1',
'_EVENT_HAVE_DLFCN_H=1',
'_EVENT_HAVE_EPOLL=1',
'_EVENT_HAVE_EPOLL_CTL=1',
'_EVENT_HAVE_EVENTFD=1',
'_EVENT_HAVE_FCNTL=1',
'_EVENT_HAVE_FCNTL_H=1',
'_EVENT_HAVE_FD_MASK=1',
'_EVENT_HAVE_GETADDRINFO=1',
'_EVENT_HAVE_GETEGID=1',
'_EVENT_HAVE_GETEUID=1',
'_EVENT_HAVE_GETNAMEINFO=1',
'_EVENT_HAVE_GETPROTOBYNUMBER=1',
'_EVENT_HAVE_GETTIMEOFDAY=1',
'_EVENT_HAVE_INET_ATON=1',
'_EVENT_HAVE_INET_NTOP=1',
'_EVENT_HAVE_INET_PTON=1',
'_EVENT_HAVE_INTTYPES_H=1',
'_EVENT_HAVE_MEMORY_H=1',
'_EVENT_HAVE_MMAP=1',
'_EVENT_HAVE_NETDB_H=1',
'_EVENT_HAVE_NETINET_IN_H=1',
'_EVENT_HAVE_PIPE=1',
'_EVENT_HAVE_POLL=1',
'_EVENT_HAVE_POLL_H=1',
'_EVENT_HAVE_PTHREADS=1',
'_EVENT_HAVE_PUTENV=1',
'_EVENT_HAVE_SA_FAMILY_T=1',
'_EVENT_HAVE_SELECT=1',
'_EVENT_HAVE_SENDFILE=1',
'_EVENT_HAVE_SETENV=1',
'_EVENT_HAVE_SETFD=1',
'_EVENT_HAVE_SIGACTION=1',
'_EVENT_HAVE_SIGNAL=1',
'_EVENT_HAVE_SPLICE=1',
'_EVENT_HAVE_STDARG_H=1',
'_EVENT_HAVE_STDDEF_H=1',
'_EVENT_HAVE_STDINT_H=1',
'_EVENT_HAVE_STDLIB_H=1',
'_EVENT_HAVE_STRINGS_H=1',
'_EVENT_HAVE_STRING_H=1',
'_EVENT_HAVE_STRSEP=1',
'_EVENT_HAVE_STRTOK_R=1',
'_EVENT_HAVE_STRTOLL=1',
'_EVENT_HAVE_STRUCT_ADDRINFO=1',
'_EVENT_HAVE_STRUCT_IN6_ADDR=1',
'_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR16=1',
'_EVENT_HAVE_STRUCT_IN6_ADDR_S6_ADDR32=1',
'_EVENT_HAVE_STRUCT_SOCKADDR_IN6=1',
'_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE=1',
'_EVENT_HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1',
'_EVENT_HAVE_SYSCTL=1',
'_EVENT_HAVE_SYS_EPOLL_H=1',
'_EVENT_HAVE_SYS_EVENTFD_H=1',
'_EVENT_HAVE_SYS_IOCTL_H=1',
'_EVENT_HAVE_SYS_MMAN_H=1',
'_EVENT_HAVE_SYS_PARAM_H=1',
'_EVENT_HAVE_SYS_QUEUE_H=1',
'_EVENT_HAVE_SYS_SELECT_H=1',
'_EVENT_HAVE_SYS_SENDFILE_H=1',
'_EVENT_HAVE_SYS_SOCKET_H=1',
'_EVENT_HAVE_SYS_STAT_H=1',
'_EVENT_HAVE_SYS_SYSCTL_H=1',
'_EVENT_HAVE_SYS_TIME_H=1',
'_EVENT_HAVE_SYS_TYPES_H=1',
'_EVENT_HAVE_SYS_UIO_H=1',
'_EVENT_HAVE_SYS_WAIT_H=1',
'_EVENT_HAVE_TIMERADD=1',
'_EVENT_HAVE_TIMERCLEAR=1',
'_EVENT_HAVE_TIMERCMP=1',
'_EVENT_HAVE_TIMERISSET=1',
'_EVENT_HAVE_UINT16_T=1',
'_EVENT_HAVE_UINT32_T=1',
'_EVENT_HAVE_UINT64_T=1',
'_EVENT_HAVE_UINT8_T=1',
'_EVENT_HAVE_UINTPTR_T=1',
'_EVENT_HAVE_UMASK=1',
'_EVENT_HAVE_UNISTD_H=1',
'_EVENT_HAVE_UNSETENV=1',
'_EVENT_HAVE_VASPRINTF=1',
'_EVENT_SIZEOF_INT=4',
'_EVENT_SIZEOF_LONG=8',
'_EVENT_SIZEOF_SHORT=2',
'_EVENT_STDC_HEADERS=1',
'_EVENT_TIME_WITH_SYS_TIME=1',
'_EVENT_NUMERIC_VERSION=0x02001600',
'_EVENT_VERSION=\\"2.0.22-stable\\"',
] + address_size_select({
'32': [
'_EVENT_SIZEOF_LONG_LONG=4',
'_EVENT_SIZEOF_OFF_T=4',
'_EVENT_SIZEOF_PTHREAD_T=4',
'_EVENT_SIZEOF_SIZE_T=4',
'_EVENT_SIZEOF_VOID_P=4',
],
'64': [
'_EVENT_SIZEOF_LONG_LONG=8',
'_EVENT_SIZEOF_OFF_T=8',
'_EVENT_SIZEOF_PTHREAD_T=8',
'_EVENT_SIZEOF_SIZE_T=8',
'_EVENT_SIZEOF_VOID_P=8',
],
}),
copts = [
'-Ithird_party/libevent/compat',
'-Ithird_party/libevent/include',
# TODO(Brian): Fix the places in the code it uses char* as an intermediate
# type while doing offsetof stuff.
'-Wno-cast-align',
'-Wno-unused-parameter',
'-Wno-format-nonliteral',
'-Wno-cast-qual',
'-Wno-unused-function',
] + compiler_select({
'gcc': [],
'clang': ['-Wno-incompatible-pointer-types-discards-qualifiers']
}),
)