licenses(["notice"])

COPTS = [
    "-pedantic",
    "-pedantic-errors",
    "-std=c++14",
    "-Wall",
    "-Wconversion",
    "-Wextra",
    "-Wshadow",
    #    "-Wshorten-64-to-32",
    "-Wfloat-equal",
    "-fstrict-aliasing",
    ## assert() are used a lot in tests upstream, which may be optimised out leading to
    ## unused-variable warning.
    "-Wno-unused-variable",
    "-Werror=old-style-cast",
]

config_setting(
    name = "qnx",
    constraint_values = ["@platforms//os:qnx"],
    values = {
        "cpu": "x64_qnx",
    },
    visibility = [":__subpackages__"],
)

config_setting(
    name = "windows",
    constraint_values = ["@platforms//os:windows"],
    values = {
        "cpu": "x64_windows",
    },
    visibility = [":__subpackages__"],
)

config_setting(
    name = "macos",
    constraint_values = ["@platforms//os:macos"],
    visibility = ["//visibility:public"],
)

config_setting(
    name = "perfcounters",
    define_values = {
        "pfm": "1",
    },
    visibility = [":__subpackages__"],
)

cc_library(
    name = "benchmark",
    srcs = glob(
        [
            "src/*.cc",
            "src/*.h",
        ],
        exclude = ["src/benchmark_main.cc"],
    ),
    hdrs = [
        "include/benchmark/benchmark.h",
        "include/benchmark/export.h",
    ],
    copts = select({
        ":windows": [],
        "//conditions:default": COPTS,
    }),
    defines = [
        "BENCHMARK_STATIC_DEFINE",
        "BENCHMARK_VERSION=\\\"" + (module_version() if module_version() != None else "") + "\\\"",
    ] + select({
        ":perfcounters": ["HAVE_LIBPFM"],
        "//conditions:default": [],
    }),
    includes = ["include"],
    linkopts = select({
        ":windows": ["-DEFAULTLIB:shlwapi.lib"],
        "//conditions:default": ["-pthread"],
    }),
    # Only static linking is allowed; no .so will be produced.
    # Using `defines` (i.e. not `local_defines`) means that no
    # dependent rules need to bother about defining the macro.
    linkstatic = True,
    local_defines = [
        # Turn on Large-file Support
        "_FILE_OFFSET_BITS=64",
        "_LARGEFILE64_SOURCE",
        "_LARGEFILE_SOURCE",
    ],
    visibility = ["//visibility:public"],
    deps = select({
        ":perfcounters": ["@libpfm"],
        "//conditions:default": [],
    }),
)

cc_library(
    name = "benchmark_main",
    srcs = ["src/benchmark_main.cc"],
    hdrs = [
        "include/benchmark/benchmark.h",
        "include/benchmark/export.h",
    ],
    includes = ["include"],
    visibility = ["//visibility:public"],
    deps = [":benchmark"],
)

cc_library(
    name = "benchmark_internal_headers",
    hdrs = glob(["src/*.h"]),
    visibility = ["//test:__pkg__"],
)
