Index: third_party/usrsctp/BUILD.gn |
diff --git a/third_party/usrsctp/BUILD.gn b/third_party/usrsctp/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1361b9697ee06aa38872a74a1694531bcdb7a6c0 |
--- /dev/null |
+++ b/third_party/usrsctp/BUILD.gn |
@@ -0,0 +1,129 @@ |
+# Copyright 2014 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. |
+ |
+import("//build/config/crypto.gni") |
+ |
+config("usrsctp_config") { |
+ include_dirs = [ |
+ "usrsctplib", |
+ "usrsctplib/netinet", |
+ ] |
+} |
+ |
+static_library("usrsctp") { |
+ sources = [ |
+ "usrsctplib/netinet/sctp.h", |
+ "usrsctplib/netinet/sctp_asconf.c", |
+ "usrsctplib/netinet/sctp_asconf.h", |
+ "usrsctplib/netinet/sctp_auth.c", |
+ "usrsctplib/netinet/sctp_auth.h", |
+ "usrsctplib/netinet/sctp_bsd_addr.c", |
+ "usrsctplib/netinet/sctp_bsd_addr.h", |
+ "usrsctplib/netinet/sctp_callout.c", |
+ "usrsctplib/netinet/sctp_callout.h", |
+ "usrsctplib/netinet/sctp_cc_functions.c", |
+ "usrsctplib/netinet/sctp_constants.h", |
+ "usrsctplib/netinet/sctp_crc32.c", |
+ "usrsctplib/netinet/sctp_crc32.h", |
+ "usrsctplib/netinet/sctp_header.h", |
+ "usrsctplib/netinet/sctp_indata.c", |
+ "usrsctplib/netinet/sctp_indata.h", |
+ "usrsctplib/netinet/sctp_input.c", |
+ "usrsctplib/netinet/sctp_input.h", |
+ "usrsctplib/netinet/sctp_lock_userspace.h", |
+ "usrsctplib/netinet/sctp_os.h", |
+ "usrsctplib/netinet/sctp_os_userspace.h", |
+ "usrsctplib/netinet/sctp_output.c", |
+ "usrsctplib/netinet/sctp_output.h", |
+ "usrsctplib/netinet/sctp_pcb.c", |
+ "usrsctplib/netinet/sctp_pcb.h", |
+ "usrsctplib/netinet/sctp_peeloff.c", |
+ "usrsctplib/netinet/sctp_peeloff.h", |
+ "usrsctplib/netinet/sctp_process_lock.h", |
+ "usrsctplib/netinet/sctp_sha1.c", |
+ "usrsctplib/netinet/sctp_sha1.h", |
+ "usrsctplib/netinet/sctp_ss_functions.c", |
+ "usrsctplib/netinet/sctp_structs.h", |
+ "usrsctplib/netinet/sctp_sysctl.c", |
+ "usrsctplib/netinet/sctp_sysctl.h", |
+ "usrsctplib/netinet/sctp_timer.c", |
+ "usrsctplib/netinet/sctp_timer.h", |
+ "usrsctplib/netinet/sctp_uio.h", |
+ "usrsctplib/netinet/sctp_userspace.c", |
+ "usrsctplib/netinet/sctp_usrreq.c", |
+ "usrsctplib/netinet/sctp_var.h", |
+ "usrsctplib/netinet/sctputil.c", |
+ "usrsctplib/netinet/sctputil.h", |
+ "usrsctplib/netinet6/sctp6_usrreq.c", |
+ "usrsctplib/netinet6/sctp6_var.h", |
+ "usrsctplib/user_atomic.h", |
+ "usrsctplib/user_environment.c", |
+ "usrsctplib/user_environment.h", |
+ "usrsctplib/user_inpcb.h", |
+ "usrsctplib/user_ip6_var.h", |
+ "usrsctplib/user_ip_icmp.h", |
+ "usrsctplib/user_malloc.h", |
+ "usrsctplib/user_mbuf.c", |
+ "usrsctplib/user_mbuf.h", |
+ "usrsctplib/user_queue.h", |
+ "usrsctplib/user_recv_thread.c", |
+ "usrsctplib/user_recv_thread.h", |
+ "usrsctplib/user_route.h", |
+ "usrsctplib/user_sctp_timer_iterate.c", |
+ "usrsctplib/user_socket.c", |
+ "usrsctplib/user_socketvar.h", |
+ "usrsctplib/user_uma.h", |
+ "usrsctplib/usrsctp.h" |
+ ] |
+ |
+ defines = [ |
+ "SCTP_PROCESS_LEVEL_LOCKS", |
+ "SCTP_SIMPLE_ALLOCATOR", |
+ "__Userspace__", |
+ # "SCTP_DEBUG", # Uncomment for SCTP debugging. |
+ ] |
+ |
+ configs -= [ "//build/config/compiler:chromium_code" ] |
+ configs += [ "//build/config/compiler:no_chromium_code" ] |
+ |
+ direct_dependent_configs = [ ":usrsctp_config" ] |
+ |
+ if (use_openssl) { |
+ defines += [ "SCTP_USE_OPENSSL_SHA1" ] |
+ } else { |
+ defines += [ "SCTP_USE_NSS_SHA1" ] |
+ } |
+ |
+ if (is_linux || is_android) { |
+ defines += [ "__Userspace_os_Linux" ] |
+ } else if (is_mac || is_ios) { |
+ defines += [ |
+ "HAVE_SA_LEN", |
+ "HAVE_SCONN_LEN", |
+ "__APPLE_USE_RFC_2292", |
+ "__Userspace_os_Darwin", |
+ ] |
+ } |
+ |
+ if (is_win) { |
+ defines += [ |
+ "__Userspace_os_Windows", |
+ # Manually setting WINVER and _WIN32_WINNT is needed because Chrome |
+ # sets WINVER to a newer version of windows. But compiling usrsctp |
+ # this way would is incompatible with windows XP. |
+ "WINVER=0x0502", |
+ "_WIN32_WINNT=0x0502", |
+ ] |
+ } else { |
+ defines += [ "NON_WINDOWS_DEFINE" ] |
+ } |
+ |
+ if (is_clang) { |
+ cflags = [ "-Wno-incompatible-pointer-types" ] |
+ } |
+ |
+ deps = [ |
+ "//crypto:platform", |
+ ] |
+} |