blob: 20904f5aeebced383568b37dde0e1a6944b5fdd1 [file] [log] [blame]
# Copyright 2017, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import("//build/components.gni")
import("//build/host.gni")
group("iperf") {
deps = [ ":iperf3" ]
# TODO(https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=48350):
# Enable host build for non-linux hosts as well.
#
# Note that for convenience, on Linux host, we are compiling iperf3 with
# src/iperf_config.h used in Fuchsia build.
if (host_os == "linux") {
deps += [ ":host_tools" ]
}
}
fuchsia_shell_package("iperf3") {
manifest = "meta/iperf3.cmx"
deps = [ ":bin" ]
}
config("iperf_config") {
visibility = [ ":*" ]
include_dirs = [ "src" ]
}
source_set("fuchsia-compat") {
sources = [ "src/fuchsia/fuchsia-compat.c" ]
public_deps = [ "//sdk/lib/fdio" ]
# TODO(fxb/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
executable("bin") {
output_name = "iperf3"
sources = [
"src/cjson.c",
"src/dscp.c",
"src/iperf_api.c",
"src/iperf_auth.c",
"src/iperf_client_api.c",
"src/iperf_error.c",
"src/iperf_locale.c",
"src/iperf_server_api.c",
"src/iperf_tcp.c",
"src/iperf_time.c",
"src/iperf_udp.c",
"src/iperf_util.c",
"src/main.c",
"src/net.c",
"src/tcp_info.c",
"src/timer.c",
"src/units.c",
]
defines = [
"_BSD_SOURCE",
"_POSIX_C_SOURCE=200809L",
]
cflags_c = [
"-Wno-format",
"-Wno-implicit-int-float-conversion",
"-Wno-int-conversion",
"-Wno-pointer-sign",
"-Wno-sign-compare",
"-Wno-unused-but-set-parameter",
"-Wno-unused-but-set-variable",
]
if (is_fuchsia) {
deps = [
":fuchsia-compat",
"//src/zircon/lib/zircon",
]
}
# TODO(fxb/58162): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-conversion" ]
}
install_host_tools("host_tools") {
deps = [ ":bin" ]
outputs = [ "iperf3" ]
}