1*dbb99499SAndroid Build Coastguard Workerlicenses(["notice"]) 2*dbb99499SAndroid Build Coastguard Worker 3*dbb99499SAndroid Build Coastguard WorkerCOPTS = [ 4*dbb99499SAndroid Build Coastguard Worker "-pedantic", 5*dbb99499SAndroid Build Coastguard Worker "-pedantic-errors", 6*dbb99499SAndroid Build Coastguard Worker "-std=c++14", 7*dbb99499SAndroid Build Coastguard Worker "-Wall", 8*dbb99499SAndroid Build Coastguard Worker "-Wconversion", 9*dbb99499SAndroid Build Coastguard Worker "-Wextra", 10*dbb99499SAndroid Build Coastguard Worker "-Wshadow", 11*dbb99499SAndroid Build Coastguard Worker # "-Wshorten-64-to-32", 12*dbb99499SAndroid Build Coastguard Worker "-Wfloat-equal", 13*dbb99499SAndroid Build Coastguard Worker "-fstrict-aliasing", 14*dbb99499SAndroid Build Coastguard Worker ## assert() are used a lot in tests upstream, which may be optimised out leading to 15*dbb99499SAndroid Build Coastguard Worker ## unused-variable warning. 16*dbb99499SAndroid Build Coastguard Worker "-Wno-unused-variable", 17*dbb99499SAndroid Build Coastguard Worker "-Werror=old-style-cast", 18*dbb99499SAndroid Build Coastguard Worker] 19*dbb99499SAndroid Build Coastguard Worker 20*dbb99499SAndroid Build Coastguard Workerconfig_setting( 21*dbb99499SAndroid Build Coastguard Worker name = "qnx", 22*dbb99499SAndroid Build Coastguard Worker constraint_values = ["@platforms//os:qnx"], 23*dbb99499SAndroid Build Coastguard Worker values = { 24*dbb99499SAndroid Build Coastguard Worker "cpu": "x64_qnx", 25*dbb99499SAndroid Build Coastguard Worker }, 26*dbb99499SAndroid Build Coastguard Worker visibility = [":__subpackages__"], 27*dbb99499SAndroid Build Coastguard Worker) 28*dbb99499SAndroid Build Coastguard Worker 29*dbb99499SAndroid Build Coastguard Workerconfig_setting( 30*dbb99499SAndroid Build Coastguard Worker name = "windows", 31*dbb99499SAndroid Build Coastguard Worker constraint_values = ["@platforms//os:windows"], 32*dbb99499SAndroid Build Coastguard Worker values = { 33*dbb99499SAndroid Build Coastguard Worker "cpu": "x64_windows", 34*dbb99499SAndroid Build Coastguard Worker }, 35*dbb99499SAndroid Build Coastguard Worker visibility = [":__subpackages__"], 36*dbb99499SAndroid Build Coastguard Worker) 37*dbb99499SAndroid Build Coastguard Worker 38*dbb99499SAndroid Build Coastguard Workerconfig_setting( 39*dbb99499SAndroid Build Coastguard Worker name = "macos", 40*dbb99499SAndroid Build Coastguard Worker constraint_values = ["@platforms//os:macos"], 41*dbb99499SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 42*dbb99499SAndroid Build Coastguard Worker) 43*dbb99499SAndroid Build Coastguard Worker 44*dbb99499SAndroid Build Coastguard Workerconfig_setting( 45*dbb99499SAndroid Build Coastguard Worker name = "perfcounters", 46*dbb99499SAndroid Build Coastguard Worker define_values = { 47*dbb99499SAndroid Build Coastguard Worker "pfm": "1", 48*dbb99499SAndroid Build Coastguard Worker }, 49*dbb99499SAndroid Build Coastguard Worker visibility = [":__subpackages__"], 50*dbb99499SAndroid Build Coastguard Worker) 51*dbb99499SAndroid Build Coastguard Worker 52*dbb99499SAndroid Build Coastguard Workercc_library( 53*dbb99499SAndroid Build Coastguard Worker name = "benchmark", 54*dbb99499SAndroid Build Coastguard Worker srcs = glob( 55*dbb99499SAndroid Build Coastguard Worker [ 56*dbb99499SAndroid Build Coastguard Worker "src/*.cc", 57*dbb99499SAndroid Build Coastguard Worker "src/*.h", 58*dbb99499SAndroid Build Coastguard Worker ], 59*dbb99499SAndroid Build Coastguard Worker exclude = ["src/benchmark_main.cc"], 60*dbb99499SAndroid Build Coastguard Worker ), 61*dbb99499SAndroid Build Coastguard Worker hdrs = [ 62*dbb99499SAndroid Build Coastguard Worker "include/benchmark/benchmark.h", 63*dbb99499SAndroid Build Coastguard Worker "include/benchmark/export.h", 64*dbb99499SAndroid Build Coastguard Worker ], 65*dbb99499SAndroid Build Coastguard Worker copts = select({ 66*dbb99499SAndroid Build Coastguard Worker ":windows": [], 67*dbb99499SAndroid Build Coastguard Worker "//conditions:default": COPTS, 68*dbb99499SAndroid Build Coastguard Worker }), 69*dbb99499SAndroid Build Coastguard Worker defines = [ 70*dbb99499SAndroid Build Coastguard Worker "BENCHMARK_STATIC_DEFINE", 71*dbb99499SAndroid Build Coastguard Worker "BENCHMARK_VERSION=\\\"" + (module_version() if module_version() != None else "") + "\\\"", 72*dbb99499SAndroid Build Coastguard Worker ] + select({ 73*dbb99499SAndroid Build Coastguard Worker ":perfcounters": ["HAVE_LIBPFM"], 74*dbb99499SAndroid Build Coastguard Worker "//conditions:default": [], 75*dbb99499SAndroid Build Coastguard Worker }), 76*dbb99499SAndroid Build Coastguard Worker includes = ["include"], 77*dbb99499SAndroid Build Coastguard Worker linkopts = select({ 78*dbb99499SAndroid Build Coastguard Worker ":windows": ["-DEFAULTLIB:shlwapi.lib"], 79*dbb99499SAndroid Build Coastguard Worker "//conditions:default": ["-pthread"], 80*dbb99499SAndroid Build Coastguard Worker }), 81*dbb99499SAndroid Build Coastguard Worker # Only static linking is allowed; no .so will be produced. 82*dbb99499SAndroid Build Coastguard Worker # Using `defines` (i.e. not `local_defines`) means that no 83*dbb99499SAndroid Build Coastguard Worker # dependent rules need to bother about defining the macro. 84*dbb99499SAndroid Build Coastguard Worker linkstatic = True, 85*dbb99499SAndroid Build Coastguard Worker local_defines = [ 86*dbb99499SAndroid Build Coastguard Worker # Turn on Large-file Support 87*dbb99499SAndroid Build Coastguard Worker "_FILE_OFFSET_BITS=64", 88*dbb99499SAndroid Build Coastguard Worker "_LARGEFILE64_SOURCE", 89*dbb99499SAndroid Build Coastguard Worker "_LARGEFILE_SOURCE", 90*dbb99499SAndroid Build Coastguard Worker ], 91*dbb99499SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 92*dbb99499SAndroid Build Coastguard Worker deps = select({ 93*dbb99499SAndroid Build Coastguard Worker ":perfcounters": ["@libpfm"], 94*dbb99499SAndroid Build Coastguard Worker "//conditions:default": [], 95*dbb99499SAndroid Build Coastguard Worker }), 96*dbb99499SAndroid Build Coastguard Worker) 97*dbb99499SAndroid Build Coastguard Worker 98*dbb99499SAndroid Build Coastguard Workercc_library( 99*dbb99499SAndroid Build Coastguard Worker name = "benchmark_main", 100*dbb99499SAndroid Build Coastguard Worker srcs = ["src/benchmark_main.cc"], 101*dbb99499SAndroid Build Coastguard Worker hdrs = [ 102*dbb99499SAndroid Build Coastguard Worker "include/benchmark/benchmark.h", 103*dbb99499SAndroid Build Coastguard Worker "include/benchmark/export.h", 104*dbb99499SAndroid Build Coastguard Worker ], 105*dbb99499SAndroid Build Coastguard Worker includes = ["include"], 106*dbb99499SAndroid Build Coastguard Worker visibility = ["//visibility:public"], 107*dbb99499SAndroid Build Coastguard Worker deps = [":benchmark"], 108*dbb99499SAndroid Build Coastguard Worker) 109*dbb99499SAndroid Build Coastguard Worker 110*dbb99499SAndroid Build Coastguard Workercc_library( 111*dbb99499SAndroid Build Coastguard Worker name = "benchmark_internal_headers", 112*dbb99499SAndroid Build Coastguard Worker hdrs = glob(["src/*.h"]), 113*dbb99499SAndroid Build Coastguard Worker visibility = ["//test:__pkg__"], 114*dbb99499SAndroid Build Coastguard Worker) 115