1# Copyright 2014 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 5import("//build/toolchain/toolchain.gni") 6import("//webrtc.gni") 7 8config("usrsctp_config") { 9 include_dirs = [ 10 "usrsctplib/usrsctplib", 11 "usrsctplib/usrsctplib/netinet", 12 ] 13} 14 15config("usrsctp_warnings") { 16 if (is_clang) { 17 cflags = [ 18 # atomic_init in user_atomic.h is a static function in a header. 19 "-Wno-unused-function", 20 21 # Use of deprecated OSAtomic* functions in user_atomic.h. This is 22 # what they did in configure.ac. We can remove this once 23 # https://github.com/sctplab/usrsctp/issues/177 is fixed. 24 "-Wno-deprecated-declarations", 25 26 # usrsctp uses timingsafe_bcmp which is not available in all 27 # versions of OS X, however this isn't actually an issue since 28 # usrsctp provides its own implementation. 29 "-Wno-unguarded-availability", 30 ] 31 } 32} 33 34static_library("usrsctp") { 35 sources = [ 36 "usrsctplib/usrsctplib/netinet/sctp.h", 37 "usrsctplib/usrsctplib/netinet/sctp_asconf.c", 38 "usrsctplib/usrsctplib/netinet/sctp_asconf.h", 39 "usrsctplib/usrsctplib/netinet/sctp_auth.c", 40 "usrsctplib/usrsctplib/netinet/sctp_auth.h", 41 "usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c", 42 "usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h", 43 "usrsctplib/usrsctplib/netinet/sctp_callout.c", 44 "usrsctplib/usrsctplib/netinet/sctp_callout.h", 45 "usrsctplib/usrsctplib/netinet/sctp_cc_functions.c", 46 "usrsctplib/usrsctplib/netinet/sctp_constants.h", 47 "usrsctplib/usrsctplib/netinet/sctp_crc32.c", 48 "usrsctplib/usrsctplib/netinet/sctp_crc32.h", 49 "usrsctplib/usrsctplib/netinet/sctp_header.h", 50 "usrsctplib/usrsctplib/netinet/sctp_indata.c", 51 "usrsctplib/usrsctplib/netinet/sctp_indata.h", 52 "usrsctplib/usrsctplib/netinet/sctp_input.c", 53 "usrsctplib/usrsctplib/netinet/sctp_input.h", 54 "usrsctplib/usrsctplib/netinet/sctp_lock_userspace.h", 55 "usrsctplib/usrsctplib/netinet/sctp_os.h", 56 "usrsctplib/usrsctplib/netinet/sctp_os_userspace.h", 57 "usrsctplib/usrsctplib/netinet/sctp_output.c", 58 "usrsctplib/usrsctplib/netinet/sctp_output.h", 59 "usrsctplib/usrsctplib/netinet/sctp_pcb.c", 60 "usrsctplib/usrsctplib/netinet/sctp_pcb.h", 61 "usrsctplib/usrsctplib/netinet/sctp_peeloff.c", 62 "usrsctplib/usrsctplib/netinet/sctp_peeloff.h", 63 "usrsctplib/usrsctplib/netinet/sctp_process_lock.h", 64 "usrsctplib/usrsctplib/netinet/sctp_sha1.c", 65 "usrsctplib/usrsctplib/netinet/sctp_sha1.h", 66 "usrsctplib/usrsctplib/netinet/sctp_ss_functions.c", 67 "usrsctplib/usrsctplib/netinet/sctp_structs.h", 68 "usrsctplib/usrsctplib/netinet/sctp_sysctl.c", 69 "usrsctplib/usrsctplib/netinet/sctp_sysctl.h", 70 "usrsctplib/usrsctplib/netinet/sctp_timer.c", 71 "usrsctplib/usrsctplib/netinet/sctp_timer.h", 72 "usrsctplib/usrsctplib/netinet/sctp_uio.h", 73 "usrsctplib/usrsctplib/netinet/sctp_userspace.c", 74 "usrsctplib/usrsctplib/netinet/sctp_usrreq.c", 75 "usrsctplib/usrsctplib/netinet/sctp_var.h", 76 "usrsctplib/usrsctplib/netinet/sctputil.c", 77 "usrsctplib/usrsctplib/netinet/sctputil.h", 78 "usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c", 79 "usrsctplib/usrsctplib/netinet6/sctp6_var.h", 80 "usrsctplib/usrsctplib/user_atomic.h", 81 "usrsctplib/usrsctplib/user_environment.c", 82 "usrsctplib/usrsctplib/user_environment.h", 83 "usrsctplib/usrsctplib/user_inpcb.h", 84 "usrsctplib/usrsctplib/user_ip6_var.h", 85 "usrsctplib/usrsctplib/user_ip_icmp.h", 86 "usrsctplib/usrsctplib/user_malloc.h", 87 "usrsctplib/usrsctplib/user_mbuf.c", 88 "usrsctplib/usrsctplib/user_mbuf.h", 89 "usrsctplib/usrsctplib/user_queue.h", 90 "usrsctplib/usrsctplib/user_recv_thread.c", 91 "usrsctplib/usrsctplib/user_recv_thread.h", 92 "usrsctplib/usrsctplib/user_route.h", 93 "usrsctplib/usrsctplib/user_socket.c", 94 "usrsctplib/usrsctplib/user_socketvar.h", 95 "usrsctplib/usrsctplib/user_uma.h", 96 "usrsctplib/usrsctplib/usrsctp.h", 97 ] 98 99 defines = [ 100 "SCTP_PROCESS_LEVEL_LOCKS", 101 "SCTP_SIMPLE_ALLOCATOR", 102 "SCTP_USE_OPENSSL_SHA1", 103 "__Userspace__", 104 105 # "SCTP_DEBUG", # Uncomment for SCTP debugging. 106 ] 107 108 configs -= [ "//build/config/compiler:chromium_code" ] 109 configs += [ 110 "//build/config/compiler:no_chromium_code", 111 112 # These must be after no_chromium_code for warning flags to be ordered 113 # correctly. 114 "//build/config/compiler:no_incompatible_pointer_warnings", 115 ":usrsctp_warnings", 116 ] 117 118 public_configs = [ ":usrsctp_config" ] 119 120 cflags = [ 121 "-UINET", 122 "-UINET6", 123 ] 124 125 if (is_linux || is_android) { 126 defines += [ 127 "__Userspace_os_Linux", 128 "_GNU_SOURCE", 129 ] 130 } else if (is_mac || is_ios) { 131 defines += [ 132 "HAVE_SA_LEN", 133 "HAVE_SCONN_LEN", 134 "__APPLE_USE_RFC_2292", 135 "__Userspace_os_Darwin", 136 ] 137 cflags += [ "-U__APPLE__" ] 138 } 139 140 if (is_win) { 141 defines += [ "__Userspace_os_Windows" ] 142 } else { 143 defines += [ "NON_WINDOWS_DEFINE" ] 144 } 145 146 if (is_fuchsia) { 147 defines += [ "__Userspace_os_Fuchsia" ] 148 } 149 if (rtc_build_ssl) { 150 deps += [ "//third_party/boringssl" ] 151 } else { 152 configs += [ "//rtc_base:external_ssl_library" ] 153 } 154} 155