diff --git a/base/BUILD.gn b/base/BUILD.gn index 6ecbad17b2..ed8650dc2b 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -1101,6 +1101,7 @@ component("base") { all_dependent_configs = [] defines = [] data = [] + libs = [] configs += [ ":base_flags", @@ -1470,6 +1471,8 @@ component("base") { ":base_win_linker_flags", "//tools/win/DebugVisualizers:chrome", ] + } else if (is_linux) { + libs += [ "event_core" ] } else if ((!is_nacl && !is_fuchsia) || is_nacl_nonsfi) { # Non-Windows. deps += [ "//base/third_party/libevent" ] @@ -2256,6 +2259,7 @@ test("base_unittests") { ] defines = [] + libs = [] deps = [ ":base", @@ -2370,7 +2374,11 @@ test("base_unittests") { if (is_posix && !is_ios && !is_fuchsia) { 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) { diff --git a/base/message_loop/message_pump_libevent.cc b/base/message_loop/message_pump_libevent.cc index 63d85c8622..a6392eda1b 100644 --- a/base/message_loop/message_pump_libevent.cc +++ b/base/message_loop/message_pump_libevent.cc @@ -14,7 +14,6 @@ #include "base/files/file_util.h" #include "base/logging.h" #include "base/posix/eintr_wrapper.h" -#include "base/third_party/libevent/event.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" @@ -23,6 +22,12 @@ #include "base/mac/scoped_nsautorelease_pool.h" #endif +#if defined(OS_LINUX) +#include +#else +#include "base/third_party/libevent/event.h" +#endif + // Lifecycle of struct event // Libevent uses two main data structures: // struct event_base (of which there is one per message pump), and diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py index f154ed2ef3..186fdecc63 100755 --- a/tools/gn/bootstrap/bootstrap.py +++ b/tools/gn/bootstrap/bootstrap.py @@ -612,16 +612,13 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/time/time_conversion_posix.cc', 'base/trace_event/heap_profiler_allocation_register_posix.cc', ]) + if not is_linux: static_libraries['libevent'] = { 'sources': [ 'base/third_party/libevent/buffer.c', 'base/third_party/libevent/evbuffer.c', - 'base/third_party/libevent/evdns.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/http.c', 'base/third_party/libevent/log.c', 'base/third_party/libevent/poll.c', 'base/third_party/libevent/select.c', @@ -665,13 +662,7 @@ def write_gn_ninja(path, root_gen_dir, options): 'base/allocator/allocator_shim.cc', 'base/allocator/allocator_shim_default_dispatch_to_glibc.cc', ]) - libs.extend(['-lrt', '-latomic']) - 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', - ]) + libs.extend(['-lrt', '-latomic', '-levent_core']) else: libs.extend(['-lrt']) static_libraries['base']['sources'].extend([