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