# 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/toolchain/toolchain.gni") config("usrsctp_config") { include_dirs = [ "usrsctplib/usrsctplib", "usrsctplib/usrsctplib/netinet", ] } config("usrsctp_warnings") { if (is_clang) { # atomic_init in user_atomic.h is a static function in a header. cflags = [ "-Wno-unused-function" ] } } static_library("usrsctp") { sources = [ "usrsctplib/usrsctplib/netinet/sctp.h", "usrsctplib/usrsctplib/netinet/sctp_asconf.c", "usrsctplib/usrsctplib/netinet/sctp_asconf.h", "usrsctplib/usrsctplib/netinet/sctp_auth.c", "usrsctplib/usrsctplib/netinet/sctp_auth.h", "usrsctplib/usrsctplib/netinet/sctp_bsd_addr.c", "usrsctplib/usrsctplib/netinet/sctp_bsd_addr.h", "usrsctplib/usrsctplib/netinet/sctp_callout.c", "usrsctplib/usrsctplib/netinet/sctp_callout.h", "usrsctplib/usrsctplib/netinet/sctp_cc_functions.c", "usrsctplib/usrsctplib/netinet/sctp_constants.h", "usrsctplib/usrsctplib/netinet/sctp_crc32.c", "usrsctplib/usrsctplib/netinet/sctp_crc32.h", "usrsctplib/usrsctplib/netinet/sctp_header.h", "usrsctplib/usrsctplib/netinet/sctp_indata.c", "usrsctplib/usrsctplib/netinet/sctp_indata.h", "usrsctplib/usrsctplib/netinet/sctp_input.c", "usrsctplib/usrsctplib/netinet/sctp_input.h", "usrsctplib/usrsctplib/netinet/sctp_lock_userspace.h", "usrsctplib/usrsctplib/netinet/sctp_os.h", "usrsctplib/usrsctplib/netinet/sctp_os_userspace.h", "usrsctplib/usrsctplib/netinet/sctp_output.c", "usrsctplib/usrsctplib/netinet/sctp_output.h", "usrsctplib/usrsctplib/netinet/sctp_pcb.c", "usrsctplib/usrsctplib/netinet/sctp_pcb.h", "usrsctplib/usrsctplib/netinet/sctp_peeloff.c", "usrsctplib/usrsctplib/netinet/sctp_peeloff.h", "usrsctplib/usrsctplib/netinet/sctp_process_lock.h", "usrsctplib/usrsctplib/netinet/sctp_sha1.c", "usrsctplib/usrsctplib/netinet/sctp_sha1.h", "usrsctplib/usrsctplib/netinet/sctp_ss_functions.c", "usrsctplib/usrsctplib/netinet/sctp_structs.h", "usrsctplib/usrsctplib/netinet/sctp_sysctl.c", "usrsctplib/usrsctplib/netinet/sctp_sysctl.h", "usrsctplib/usrsctplib/netinet/sctp_timer.c", "usrsctplib/usrsctplib/netinet/sctp_timer.h", "usrsctplib/usrsctplib/netinet/sctp_uio.h", "usrsctplib/usrsctplib/netinet/sctp_userspace.c", "usrsctplib/usrsctplib/netinet/sctp_usrreq.c", "usrsctplib/usrsctplib/netinet/sctp_var.h", "usrsctplib/usrsctplib/netinet/sctputil.c", "usrsctplib/usrsctplib/netinet/sctputil.h", "usrsctplib/usrsctplib/netinet6/sctp6_usrreq.c", "usrsctplib/usrsctplib/netinet6/sctp6_var.h", "usrsctplib/usrsctplib/user_atomic.h", "usrsctplib/usrsctplib/user_environment.c", "usrsctplib/usrsctplib/user_environment.h", "usrsctplib/usrsctplib/user_inpcb.h", "usrsctplib/usrsctplib/user_ip6_var.h", "usrsctplib/usrsctplib/user_ip_icmp.h", "usrsctplib/usrsctplib/user_malloc.h", "usrsctplib/usrsctplib/user_mbuf.c", "usrsctplib/usrsctplib/user_mbuf.h", "usrsctplib/usrsctplib/user_queue.h", "usrsctplib/usrsctplib/user_recv_thread.c", "usrsctplib/usrsctplib/user_recv_thread.h", "usrsctplib/usrsctplib/user_route.h", "usrsctplib/usrsctplib/user_socket.c", "usrsctplib/usrsctplib/user_socketvar.h", "usrsctplib/usrsctplib/user_uma.h", "usrsctplib/usrsctplib/usrsctp.h", ] defines = [ "SCTP_PROCESS_LEVEL_LOCKS", "SCTP_SIMPLE_ALLOCATOR", "SCTP_USE_OPENSSL_SHA1", "__Userspace__", # "SCTP_DEBUG", # Uncomment for SCTP debugging. ] configs -= [ "//build/config/compiler:chromium_code" ] configs += [ "//build/config/compiler:no_chromium_code", # These must be after no_chromium_code for warning flags to be ordered # correctly. "//build/config/compiler:no_incompatible_pointer_warnings", ":usrsctp_warnings", ] public_configs = [ ":usrsctp_config" ] cflags = [ "-UINET", "-UINET6", ] if (is_linux || is_android) { defines += [ "__Userspace_os_Linux", "_GNU_SOURCE", ] } else if (is_mac || is_ios) { defines += [ "HAVE_SA_LEN", "HAVE_SCONN_LEN", "__APPLE_USE_RFC_2292", "__Userspace_os_Darwin", ] cflags += [ "-U__APPLE__" ] } if (is_win) { defines += [ "__Userspace_os_Windows" ] } else { defines += [ "NON_WINDOWS_DEFINE" ] } deps = [ "//third_party/boringssl", ] }