Home | History | Annotate | Download | only in usrsctp
      1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 {
      5   'variables': {
      6     'libsctp_target_type%': 'static_library',
      7   },
      8   'target_defaults': {
      9     'defines': [
     10       'SCTP_PROCESS_LEVEL_LOCKS',
     11       'SCTP_SIMPLE_ALLOCATOR',
     12       '__Userspace__',
     13       # 'SCTP_DEBUG', # Uncomment for SCTP debugging.
     14     ],
     15     'include_dirs': [
     16       'usrsctplib/',
     17       'usrsctplib/netinet',
     18     ],
     19     'direct_dependent_settings': {
     20       'include_dirs': [
     21         'usrsctplib/',
     22         'usrsctplib/netinet',
     23       ],
     24     },
     25     'conditions': [
     26       ['use_openssl==1', {
     27         'defines': [
     28           'SCTP_USE_OPENSSL_SHA1',
     29         ],
     30         'dependencies': [
     31           '<(DEPTH)/third_party/boringssl/boringssl.gyp:boringssl',
     32         ],
     33       },
     34       {  # else use_openssl==0, use NSS.
     35         'defines' : [
     36           'SCTP_USE_NSS_SHA1',
     37         ],
     38         'conditions': [
     39           ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
     40             'dependencies': [  # The system.gyp:ssl dependency includes nss
     41               '<(DEPTH)/build/linux/system.gyp:ssl',
     42             ],
     43           }],
     44           ['OS == "mac" or OS == "ios" or OS == "win"', {
     45             'dependencies': [
     46               '<(DEPTH)/third_party/nss/nss.gyp:nspr',
     47               '<(DEPTH)/third_party/nss/nss.gyp:nss',
     48             ],
     49           }],
     50         ],
     51       }],
     52     ],
     53   },
     54   'targets': [
     55     {
     56       # GN version: //third_party/usrsctp
     57       'target_name': 'usrsctplib',
     58       'type': 'static_library',
     59       'sources': [
     60         # Note: sources list duplicated in GN build.
     61         'usrsctplib/netinet/sctp.h',
     62         'usrsctplib/netinet/sctp_asconf.c',
     63         'usrsctplib/netinet/sctp_asconf.h',
     64         'usrsctplib/netinet/sctp_auth.c',
     65         'usrsctplib/netinet/sctp_auth.h',
     66         'usrsctplib/netinet/sctp_bsd_addr.c',
     67         'usrsctplib/netinet/sctp_bsd_addr.h',
     68         'usrsctplib/netinet/sctp_callout.c',
     69         'usrsctplib/netinet/sctp_callout.h',
     70         'usrsctplib/netinet/sctp_cc_functions.c',
     71         'usrsctplib/netinet/sctp_constants.h',
     72         'usrsctplib/netinet/sctp_crc32.c',
     73         'usrsctplib/netinet/sctp_crc32.h',
     74         'usrsctplib/netinet/sctp_header.h',
     75         'usrsctplib/netinet/sctp_indata.c',
     76         'usrsctplib/netinet/sctp_indata.h',
     77         'usrsctplib/netinet/sctp_input.c',
     78         'usrsctplib/netinet/sctp_input.h',
     79         'usrsctplib/netinet/sctp_lock_userspace.h',
     80         'usrsctplib/netinet/sctp_os.h',
     81         'usrsctplib/netinet/sctp_os_userspace.h',
     82         'usrsctplib/netinet/sctp_output.c',
     83         'usrsctplib/netinet/sctp_output.h',
     84         'usrsctplib/netinet/sctp_pcb.c',
     85         'usrsctplib/netinet/sctp_pcb.h',
     86         'usrsctplib/netinet/sctp_peeloff.c',
     87         'usrsctplib/netinet/sctp_peeloff.h',
     88         'usrsctplib/netinet/sctp_process_lock.h',
     89         'usrsctplib/netinet/sctp_sha1.c',
     90         'usrsctplib/netinet/sctp_sha1.h',
     91         'usrsctplib/netinet/sctp_ss_functions.c',
     92         'usrsctplib/netinet/sctp_structs.h',
     93         'usrsctplib/netinet/sctp_sysctl.c',
     94         'usrsctplib/netinet/sctp_sysctl.h',
     95         'usrsctplib/netinet/sctp_timer.c',
     96         'usrsctplib/netinet/sctp_timer.h',
     97         'usrsctplib/netinet/sctp_uio.h',
     98         'usrsctplib/netinet/sctp_userspace.c',
     99         'usrsctplib/netinet/sctp_usrreq.c',
    100         'usrsctplib/netinet/sctp_var.h',
    101         'usrsctplib/netinet/sctputil.c',
    102         'usrsctplib/netinet/sctputil.h',
    103         'usrsctplib/netinet6/sctp6_usrreq.c',
    104         'usrsctplib/netinet6/sctp6_var.h',
    105         'usrsctplib/user_atomic.h',
    106         'usrsctplib/user_environment.c',
    107         'usrsctplib/user_environment.h',
    108         'usrsctplib/user_inpcb.h',
    109         'usrsctplib/user_ip6_var.h',
    110         'usrsctplib/user_ip_icmp.h',
    111         'usrsctplib/user_malloc.h',
    112         'usrsctplib/user_mbuf.c',
    113         'usrsctplib/user_mbuf.h',
    114         'usrsctplib/user_queue.h',
    115         'usrsctplib/user_recv_thread.c',
    116         'usrsctplib/user_recv_thread.h',
    117         'usrsctplib/user_route.h',
    118         'usrsctplib/user_sctp_timer_iterate.c',
    119         'usrsctplib/user_socket.c',
    120         'usrsctplib/user_socketvar.h',
    121         'usrsctplib/user_uma.h',
    122         'usrsctplib/usrsctp.h'
    123       ],  # sources
    124       'conditions': [
    125         ['OS=="linux" or OS=="android"', {
    126           'defines': [
    127             '__Userspace_os_Linux',
    128           ],
    129           'cflags!': [ '-Werror', '-Wall' ],
    130           'cflags': [ '-w' ],
    131         }],
    132         ['OS=="mac" or OS=="ios"', {
    133           'defines': [
    134             'HAVE_SA_LEN',
    135             'HAVE_SCONN_LEN',
    136             '__APPLE_USE_RFC_2292',
    137             '__Userspace_os_Darwin',
    138           ],
    139           # usrsctp requires that __APPLE__ is undefined for compilation (for
    140           # historical reasons). There is a plan to change this, and when it
    141           # happens and we re-roll DEPS for usrsctp, we can remove the manual
    142           # undefining of __APPLE__.
    143           'xcode_settings': {
    144             'OTHER_CFLAGS!': [ '-Werror', '-Wall' ],
    145             'OTHER_CFLAGS': [ '-U__APPLE__', '-w' ],
    146           },
    147         }],
    148         ['OS=="win"', {
    149           'defines': [
    150             '__Userspace_os_Windows',
    151             # Manually setting WINVER and _WIN32_WINNT is needed because Chrome
    152             # sets WINVER to a newer version of  windows. But compiling usrsctp
    153             # this way would is incompatible  with windows XP.
    154             'WINVER=0x0502',
    155             '_WIN32_WINNT=0x0502',
    156           ],
    157           'defines!': [
    158             # Remove Chrome's WINVER defines to avoid redefinition warnings.
    159             'WINVER=0x0602',
    160             '_WIN32_WINNT=0x0602',
    161           ],
    162           'cflags!': [ '/W3', '/WX' ],
    163           'cflags': [ '/w' ],
    164           # TODO(ldixon) : Remove this disabling of warnings by pushing a
    165           # fix upstream to usrsctp
    166           'msvs_disabled_warnings': [ 4002, 4013, 4018, 4133, 4267, 4313, 4700 ],
    167         }, {  # OS != "win",
    168           'defines': [
    169             'NON_WINDOWS_DEFINE',
    170           ],
    171         }],
    172       ],  # conditions
    173     },  # target usrsctp
    174   ],  # targets
    175 }
    176