| // | |
| // Copyright (C) 2019 The Android Open Source Project | |
| // 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. | |
| // | |
| // 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. | |
| // | |
| package { | |
| default_team: "trendy_team_native_tools_libraries", | |
| default_applicable_licenses: ["bionic_benchmarks_license"], | |
| } | |
| cc_defaults { | |
| name: "bionic_spawn_benchmark_targets", | |
| host_supported: true, | |
| target: { | |
| darwin: { | |
| enabled: false, | |
| }, | |
| windows: { | |
| enabled: false, | |
| }, | |
| linux_glibc_x86: { | |
| enabled: false, | |
| }, | |
| linux_musl_x86: { | |
| enabled: false, | |
| }, | |
| }, | |
| } | |
| cc_library_static { | |
| name: "libbionic_spawn_benchmark", | |
| defaults: ["bionic_spawn_benchmark_targets"], | |
| srcs: ["spawn_benchmark.cpp"], | |
| export_include_dirs: ["include"], | |
| static_libs: [ | |
| "libbase", | |
| "libgoogle-benchmark", | |
| "liblog", | |
| ], | |
| } | |
| cc_benchmark { | |
| name: "bionic-spawn-benchmarks", | |
| defaults: ["bionic_spawn_benchmark_targets"], | |
| srcs: ["spawn_benchmarks.cpp"], | |
| static_libs: [ | |
| "libbase", | |
| "libbionic_spawn_benchmark", | |
| "liblog", | |
| ], | |
| // Install these binaries in the same directory as the main benchmark binary. | |
| data: [ | |
| ":bench_cxa_atexit", | |
| ":bench_noop", | |
| ":bench_noop_nostl", | |
| ":bench_noop_static", | |
| ], | |
| } | |
| cc_defaults { | |
| name: "bionic_spawn_benchmark_binary", | |
| defaults: ["bionic_spawn_benchmark_targets"], | |
| compile_multilib: "both", | |
| multilib: { | |
| lib32: { | |
| suffix: "32", | |
| }, | |
| lib64: { | |
| suffix: "64", | |
| }, | |
| }, | |
| // When this binary is installed to host/linux-x86/bin, its runpath is ${ORIGIN}/../lib64, which | |
| // is fine for finding host/linux-x86/lib64/libc++.so. When it's installed to | |
| // host/linux-x86/benchmarktest64/bionic-spawn-benchmarks, the runpath needs an extra "..". This | |
| // argument has no effect when a static executable is produced. | |
| target: { | |
| linux_glibc_x86_64: { | |
| ldflags: [ | |
| "-Wl,--rpath,${ORIGIN}/../../lib64", | |
| ], | |
| }, | |
| linux_musl_x86_64: { | |
| ldflags: [ | |
| "-Wl,--rpath,${ORIGIN}/../../lib64", | |
| ], | |
| }, | |
| }, | |
| } | |
| cc_binary { | |
| defaults: ["bionic_spawn_benchmark_binary"], | |
| name: "bench_cxa_atexit", | |
| srcs: ["bench_cxa_atexit.cpp"], | |
| } | |
| cc_binary { | |
| defaults: ["bionic_spawn_benchmark_binary"], | |
| name: "bench_noop", | |
| srcs: ["noop.cpp"], | |
| } | |
| cc_binary { | |
| defaults: ["bionic_spawn_benchmark_binary"], | |
| name: "bench_noop_nostl", | |
| srcs: ["noop.cpp"], | |
| stl: "none", | |
| } | |
| cc_binary { | |
| defaults: ["bionic_spawn_benchmark_binary"], | |
| name: "bench_noop_static", | |
| srcs: ["noop.cpp"], | |
| static_executable: true, | |
| stl: "libc++_static", | |
| } |