From e97831dd75f59483cca12b7cb397bdbc0e945cd4 Mon Sep 17 00:00:00 2001 From: "phajdan.jr@chromium.org" Date: Thu, 7 Jan 2010 18:16:58 +0000 Subject: Allow using system libevent instead of the bundled one. Patch by Bernard Cafarelli TEST=none BUG=22140 Review URL: http://codereview.chromium.org/524061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35711 0039d316-1c4b-4281-b951-d872f2087c98 --- third_party/libevent/libevent.gyp | 108 +++++++++++++++++++++++--------------- 1 file changed, 66 insertions(+), 42 deletions(-) (limited to 'third_party/libevent') diff --git a/third_party/libevent/libevent.gyp b/third_party/libevent/libevent.gyp index 20ac4d64..6d03930 100644 --- a/third_party/libevent/libevent.gyp +++ b/third_party/libevent/libevent.gyp @@ -3,54 +3,78 @@ # found in the LICENSE file. { - 'targets': [ - { - 'target_name': 'libevent', - 'product_name': 'event', - 'type': '<(library)', - 'sources': [ - 'buffer.c', - 'evbuffer.c', - 'evdns.c', - 'event.c', - 'event_tagging.c', - 'evrpc.c', - 'evutil.c', - 'http.c', - 'log.c', - 'poll.c', - 'select.c', - 'signal.c', - 'strlcpy.c', + 'variables': { + 'use_system_libevent%': 0, + }, + 'conditions': [ + ['use_system_libevent==0', { + 'targets': [ + { + 'target_name': 'libevent', + 'product_name': 'event', + 'type': '<(library)', + 'sources': [ + 'buffer.c', + 'evbuffer.c', + 'evdns.c', + 'event.c', + 'event_tagging.c', + 'evrpc.c', + 'evutil.c', + 'http.c', + 'log.c', + 'poll.c', + 'select.c', + 'signal.c', + 'strlcpy.c', + ], + 'defines': [ + 'HAVE_CONFIG_H', + ], + 'include_dirs': [ + '.', # libevent includes some of its own headers with + # #include <...> instead of #include "..." + ], + 'conditions': [ + # libevent has platform-specific implementation files. Since its + # native build uses autoconf, platform-specific config.h files are + # provided and live in platform-specific directories. + [ 'OS == "linux"', { + 'sources': [ 'epoll.c', 'epoll_sub.c' ], + 'include_dirs': [ 'linux' ], + 'link_settings': { + 'libraries': [ + # We need rt for clock_gettime(). + # TODO(port) Maybe on FreeBSD as well? + '-lrt', + ], + }, + }], + [ 'OS == "mac" or OS == "freebsd"', { + 'sources': [ 'kqueue.c' ], + 'include_dirs': [ 'mac' ] + }], + ], + }, ], - 'defines': [ - 'HAVE_CONFIG_H', - ], - 'include_dirs': [ - '.', # libevent includes some of its own headers with #include <...> - # instead of #include "..." - ], - 'conditions': [ - # libevent has platform-specific implementation files. Since its - # native build uses autoconf, platform-specific config.h files are - # provided and live in platform-specific directories. - [ 'OS == "linux"', { - 'sources': [ 'epoll.c', 'epoll_sub.c' ], - 'include_dirs': [ 'linux' ], + }, { # use_system_libevent != 0 + 'targets': [ + { + 'target_name': 'libevent', + 'type': 'settings', + 'direct_dependent_settings': { + 'defines': [ + 'USE_SYSTEM_LIBEVENT', + ], + }, 'link_settings': { 'libraries': [ - # We need rt for clock_gettime(). - # TODO(port) Maybe on FreeBSD as well? - '-lrt', + '-levent', ], }, - }], - [ 'OS == "mac" or OS == "freebsd"', { - 'sources': [ 'kqueue.c' ], - 'include_dirs': [ 'mac' ] - }], + } ], - }, + }], ], } -- cgit v1.1