build: Trim libevent usage

Use system libevent on Linux. Remove extra libs on other platforms.
This commit is contained in:
klzgrad 2018-01-25 07:50:56 -05:00
parent 3297690905
commit 4c69948a00
3 changed files with 20 additions and 14 deletions

View File

@ -1187,6 +1187,7 @@ jumbo_component("base") {
defines = [] defines = []
data = [] data = []
data_deps = [] data_deps = []
libs = []
configs += [ configs += [
":base_flags", ":base_flags",
@ -1745,7 +1746,11 @@ jumbo_component("base") {
} }
if (dep_libevent) { if (dep_libevent) {
deps += [ "//base/third_party/libevent" ] if (is_linux) {
libs += [ "event_core" ]
} else {
deps += [ "//base/third_party/libevent" ]
}
} }
if (use_libevent) { if (use_libevent) {
@ -2466,6 +2471,7 @@ test("base_unittests") {
] ]
defines = [] defines = []
libs = []
deps = [ deps = [
":base", ":base",
@ -2609,7 +2615,11 @@ test("base_unittests") {
if (use_libevent) { if (use_libevent) {
sources += [ "message_loop/message_pump_libevent_unittest.cc" ] sources += [ "message_loop/message_pump_libevent_unittest.cc" ]
deps += [ "//base/third_party/libevent" ] if (is_linux) {
libs += [ "event_core" ]
} else {
deps += [ "//base/third_party/libevent" ]
}
} }
if (is_fuchsia) { if (is_fuchsia) {

View File

@ -14,7 +14,6 @@
#include "base/files/file_util.h" #include "base/files/file_util.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/posix/eintr_wrapper.h" #include "base/posix/eintr_wrapper.h"
#include "base/third_party/libevent/event.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "build/build_config.h" #include "build/build_config.h"
@ -23,6 +22,12 @@
#include "base/mac/scoped_nsautorelease_pool.h" #include "base/mac/scoped_nsautorelease_pool.h"
#endif #endif
#if defined(OS_LINUX)
#include <event.h>
#else
#include "base/third_party/libevent/event.h"
#endif
// Lifecycle of struct event // Lifecycle of struct event
// Libevent uses two main data structures: // Libevent uses two main data structures:
// struct event_base (of which there is one per message pump), and // struct event_base (of which there is one per message pump), and

View File

@ -708,16 +708,13 @@ def write_gn_ninja(path, root_gen_dir, options, windows_x64_toolchain):
'base/threading/thread_local_storage_posix.cc', 'base/threading/thread_local_storage_posix.cc',
'base/time/time_conversion_posix.cc', 'base/time/time_conversion_posix.cc',
]) ])
if not is_linux:
static_libraries['libevent'] = { static_libraries['libevent'] = {
'sources': [ 'sources': [
'base/third_party/libevent/buffer.c', 'base/third_party/libevent/buffer.c',
'base/third_party/libevent/evbuffer.c', 'base/third_party/libevent/evbuffer.c',
'base/third_party/libevent/evdns.c',
'base/third_party/libevent/event.c', 'base/third_party/libevent/event.c',
'base/third_party/libevent/event_tagging.c',
'base/third_party/libevent/evrpc.c',
'base/third_party/libevent/evutil.c', 'base/third_party/libevent/evutil.c',
'base/third_party/libevent/http.c',
'base/third_party/libevent/log.c', 'base/third_party/libevent/log.c',
'base/third_party/libevent/poll.c', 'base/third_party/libevent/poll.c',
'base/third_party/libevent/select.c', 'base/third_party/libevent/select.c',
@ -838,13 +835,7 @@ def write_gn_ninja(path, root_gen_dir, options, windows_x64_toolchain):
'base/allocator/allocator_shim.cc', 'base/allocator/allocator_shim.cc',
'base/allocator/allocator_shim_default_dispatch_to_glibc.cc', 'base/allocator/allocator_shim_default_dispatch_to_glibc.cc',
]) ])
libs.extend(['-lrt', '-latomic']) libs.extend(['-lrt', '-latomic', '-levent_core'])
static_libraries['libevent']['include_dirs'].extend([
os.path.join(SRC_ROOT, 'base', 'third_party', 'libevent', 'linux')
])
static_libraries['libevent']['sources'].extend([
'base/third_party/libevent/epoll.c',
])
else: else:
ldflags.extend(['-pthread']) ldflags.extend(['-pthread'])
libs.extend(['-lrt']) libs.extend(['-lrt'])