load("@//tools/build_rules:select.bzl", "compiler_select")

cc_library(
    name = "re",
    srcs = glob(
        [
            "src/**/*.c",
            "src/**/*.h",
        ],
        exclude = [
            "src/aes/apple/**",
            "src/aes/stub.c",
            "src/hmac/apple/**",
            "src/hmac/hmac.c",
            "src/mqueue/win32/**",
            "src/sha/**",
            "src/md5/**",
            "src/ice/ice.c",
            "src/dns/win32/**",
            "src/mod/win32/**",
            "src/lock/lock.c",
            "src/lock/win32/**",
            "src/dns/darwin/**",
            "src/net/win32/**",
            "src/net/bsd/**",
        ],
    ),
    hdrs = glob(["include/*.h"]),
    copts = compiler_select({
        "clang": [
            "-Wno-incompatible-pointer-types-discards-qualifiers",
            "-Wno-macro-redefined",
        ],
        "gcc": [
            "-Wno-discarded-qualifiers",
            "-Wno-implicit-fallthrough",
            "-Wno-address",
        ],
    }) + [
        "-DVER_MAJOR=0",
        "-DVER_MINOR=6",
        "-DVER_PATCH=0",
        "-DHAVE_ROUTE_LIST",
        "-Wno-cast-qual",
        "-Wno-cast-align",
        "-Wno-implicit-function-declaration",
        "-DUSE_OPENSSL",
        "-DUSE_TLS",
        "-DUSE_OPENSSL_DTLS",
        "-DUSE_DTLS",
        "-DUSE_OPENSSL_SRTP",
        "-DUSE_DTLS_SRTP",
        #"-DUSE_ZLIB",
        "-DHAVE_INET6",
        "-DHAVE_SELECT",
        "-DHAVE_STDBOOL_H",
        "-DHAVE_INTTYPES_H",
        "-DHAVE_NET_ROUTE_H",
        "-DHAVE_SYS_SYSCTL_H",
        "-DHAVE_FORK",
        "-DHAVE_INET_NTOP",
        "-DHAVE_PWD_H",
        "-DHAVE_SELECT_H",
        "-DHAVE_SETRLIMIT",
        "-DHAVE_SIGNAL",
        "-DHAVE_STRERROR_R",
        "-DHAVE_STRINGS_H",
        "-DHAVE_SYS_TIME_H",
        "-DHAVE_UNAME",
        "-DHAVE_UNISTD_H",
        "-DHAVE_PTHREAD",
        "-DHAVE_GETIFADDRS",
        "-DHAVE_DLFCN",
        "-DHAVE_EPOLL",
        "-DHAVE_RESOLV",
        "-DHAVE_POLL",
        "-DHAVE_INET_PTON",
        "-DHAVE_ROUTE_LIST",
    ],
    defines = ["HAVE_INTTYPES_H"],
    includes = ["include/"],
    visibility = ["//visibility:public"],
    deps = ["@boringssl//:ssl"],
)
