blob: 94f26786e1d814398b100c154140a28d8bd3624e [file] [log] [blame]
# 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) {
cflags = [
# atomic_init in user_atomic.h is a static function in a header.
"-Wno-unused-function",
# Use of deprecated OSAtomic* functions in user_atomic.h. This is
# what they did in configure.ac. We can remove this once
# https://github.com/sctplab/usrsctp/issues/177 is fixed.
"-Wno-deprecated-declarations",
]
}
}
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" ]
}
if (is_fuchsia) {
defines += [ "__Userspace_os_Fuchsia" ]
}
deps = [
"//third_party/boringssl",
]
}