# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

{
  'variables': {
    'use_system_libevent%': 0,
  },
  'conditions': [
    ['use_system_libevent==0', {
      'targets': [
        {
          'target_name': 'libevent',
          'product_name': 'event',
          'type': 'static_library',
          'toolsets': ['host', 'target'],
          'sources': [
            'buffer.c',
            'epoll.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',
          ],
          'conditions': [
            # Starboard could be any other underlying platform, so we use
            # target_arch to tell the difference. Libevent is itself a platform
            # abstraction library, so Starboard depends on it to implement its
            # SbSocketWaiter API. This means the Libevent is below the Starboard
            # platform abstraction line.
            [ 'OS == "starboard"', {
              'sources!': [
                'buffer.c',
                'evbuffer.c',
                'evdns.c',
                'event_tagging.c',
                'evrpc.c',
                'http.c',
                'select.c',
                'signal.c',
                'strlcpy.c',
              ],
              'include_dirs': [ 'starboard' ],
              'conditions': [
                [ 'sb_libevent_method == "epoll"', {
                  'sources!': [ 'poll.c' ],
                }],
                [ 'sb_libevent_method == "poll"', {
                  'sources!': [ 'epoll.c' ],
                }],
                [ 'target_os == "linux"', {
                  'sources': [ 'epoll_sub.c' ],
                  'include_dirs': [ 'starboard/linux' ],
                  'link_settings': {
                    'libraries': [
                      '-lrt',
                    ],
                  },
                }],
                # TODO: Make this android specific, not a linux copy.
                [ 'target_os == "android"', {
                  'sources': [ 'epoll_sub.c' ],
                  'include_dirs': [ 'starboard/linux' ],
                  'link_settings': {
                    'libraries': [
                      '-lrt',
                    ],
                  },
                }],
                [ 'target_os == "orbis"', {
                  'include_dirs': [ 'starboard/ps4' ],
                  }
                ],
                [ 'target_os == "cell"', {
                  'include_dirs': [ 'starboard/ps3' ],
                  },
                ],
              ],
            }],
            # 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" or (OS == "android" and _toolset == "host")', {
              '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 == "android" or (OS == "lb_shell" and target_arch == "android")) and _toolset == "target"', {
              # On android, epoll_create(), epoll_ctl(), epoll_wait() and
              # clock_gettime() are all in libc.so, so no need to add
              # epoll_sub.c and link librt.
              'sources': [ 'epoll.c' ],
              'include_dirs': [ 'android' ],
            }],
            [ 'OS == "mac" or OS == "ios" or os_bsd==1', {
              'sources': [ 'kqueue.c' ],
              'include_dirs': [ 'mac' ]
            }],
            [ 'OS == "solaris"', {
              'sources': [ 'devpoll.c', 'evport.c' ],
              'include_dirs': [ 'solaris' ]
            }],
          ],
        },
      ],
    }, {  # use_system_libevent != 0
      'targets': [
        {
          'target_name': 'libevent',
          'type': 'none',
          'toolsets': ['host', 'target'],
          'direct_dependent_settings': {
            'defines': [
              'USE_SYSTEM_LIBEVENT',
            ],
          },
          'link_settings': {
            'libraries': [
              '-levent',
            ],
          },
        }
      ],
    }],
  ],
}
