"""Build definitions and rules for XNNPACK."""

load(":emscripten.bzl", "xnnpack_emscripten_benchmark_linkopts", "xnnpack_emscripten_deps", "xnnpack_emscripten_minimal_linkopts", "xnnpack_emscripten_test_linkopts")

def xnnpack_visibility():
    """Visibility of :XNNPACK target.

    All other targets have private visibility, and can not have external
    dependencies.
    """
    return ["//visibility:public"]

def xnnpack_min_size_copts():
    """Compiler flags for size-optimized builds."""
    return ["-Os"]

def xnnpack_gcc_std_copts():
    """GCC-like compiler flags to specify language standard for C sources."""
    return ["-std=c99"]

def xnnpack_msvc_std_copts():
    """MSVC compiler flags to specify language standard for C sources."""
    return ["/Drestrict="]

def xnnpack_std_cxxopts():
    """Compiler flags to specify language standard for C++ sources."""
    return ["-std=gnu++11"]

def xnnpack_optional_ruy_copts():
    """Compiler flags to optionally enable Ruy benchmarks."""
    return []

def xnnpack_optional_gemmlowp_copts():
    """Compiler flags to optionally enable Gemmlowp benchmarks."""
    return []

def xnnpack_optional_tflite_copts():
    """Compiler flags to optionally enable TensorFlow Lite benchmarks."""
    return []

def xnnpack_optional_armcl_copts():
    """Compiler flags to optionally enable ARM ComputeLibrary benchmarks."""
    return []

def xnnpack_optional_dnnl_copts():
    """Compiler flags to optionally enable Intel DNNL benchmarks."""
    return []

def xnnpack_optional_ruy_deps():
    """Optional Ruy dependencies."""
    return []

def xnnpack_optional_gemmlowp_deps():
    """Optional Gemmlowp dependencies."""
    return []

def xnnpack_optional_tflite_deps():
    """Optional TensorFlow Lite dependencies."""
    return []

def xnnpack_optional_armcl_deps():
    """Optional ARM ComputeLibrary dependencies."""
    return []

def xnnpack_optional_dnnl_deps():
    """Optional Intel DNNL dependencies."""
    return []

def xnnpack_cc_library(
        name,
        srcs = [],
        x86_srcs = [],
        aarch32_srcs = [],
        aarch64_srcs = [],
        wasm_srcs = [],
        wasmsimd_srcs = [],
        copts = [],
        gcc_copts = [],
        msvc_copts = [],
        mingw_copts = [],
        msys_copts = [],
        gcc_x86_copts = [],
        msvc_x86_32_copts = [],
        msvc_x86_64_copts = [],
        apple_aarch32_copts = [],
        aarch32_copts = [],
        aarch64_copts = [],
        wasm_copts = [],
        wasmsimd_copts = [],
        optimized_copts = ["-O2"],
        hdrs = [],
        defines = [],
        includes = [],
        deps = [],
        visibility = []):
    """C/C++/assembly library with architecture-specific configuration.

    Define a static library with architecture- and instruction-specific
    source files and/or compiler flags.

    Args:
      name: The name of the library target to define.
      srcs: The list of architecture-independent source files.
      x86_srcs: The list of x86-specific source files.
      aarch32_srcs: The list of AArch32-specific source files.
      aarch64_srcs: The list of AArch64-specific source files.
      wasm_srcs: The list of WebAssembly/MVP-specific source files.
      wasmsimd_srcs: The list of WebAssembly/SIMD-specific source files.
      copts: The list of compiler flags to use in all builds. -I flags for
             include/ and src/ directories of XNNPACK are always prepended
             before these user-specified flags.
      gcc_copts: The list of compiler flags to use with GCC-like compilers.
      msvc_copts: The list of compiler flags to use with MSVC compiler.
      mingw_copts: The list of compiler flags to use with MinGW GCC compilers.
      msys_copts: The list of compiler flags to use with MSYS (Cygwin) GCC
                  compilers.
      gcc_x86_copts: The list of GCC-like compiler flags to use in x86 (32-bit
                     and 64-bit) builds.
      msvc_x86_32_copts: The list of MSVC compiler flags to use in x86 (32-bit)
                         builds.
      msvc_x86_64_copts: The list of MSVC compiler flags to use in x86 (64-bit)
                         builds.
      apple_aarch32_copts: The list of compiler flags to use in AArch32 builds
                           with Apple Clang.
      aarch32_copts: The list of compiler flags to use in AArch32 builds.
      aarch64_copts: The list of compiler flags to use in AArch64 builds.
      wasm_copts: The list of compiler flags to use in WebAssembly/MVP builds.
      wasmsimd_copts: The list of compiler flags to use in WebAssembly/SIMD
                      builds.
      optimized_copts: The list of compiler flags to use in optimized builds.
                       Defaults to -O2.
      hdrs: The list of header files published by this library to be textually
            included by sources in dependent rules.
      defines: List of predefines macros to be added to the compile line.
      includes: List of include dirs to be added to the compile line.
      deps: The list of other libraries to be linked.
      visibility: The list of packages that can depend on this target.
    """
    native.cc_library(
        name = name,
        srcs = srcs + select({
            ":linux_k8": x86_srcs,
            ":linux_arm": aarch32_srcs,
            ":linux_armeabi": aarch32_srcs,
            ":linux_armhf": aarch32_srcs,
            ":linux_armv7a": aarch32_srcs,
            ":linux_aarch64": aarch64_srcs,
            ":macos_x86_64": x86_srcs,
            ":macos_arm64": aarch64_srcs,
            ":windows_x86_64_clang": x86_srcs,
            ":windows_x86_64_mingw": x86_srcs,
            ":windows_x86_64_msys": x86_srcs,
            ":windows_x86_64": x86_srcs,
            ":android_armv7": aarch32_srcs,
            ":android_arm64": aarch64_srcs,
            ":android_x86": x86_srcs,
            ":android_x86_64": x86_srcs,
            ":ios_armv7": aarch32_srcs,
            ":ios_arm64": aarch64_srcs,
            ":ios_arm64e": aarch64_srcs,
            ":ios_x86": x86_srcs,
            ":ios_x86_64": x86_srcs,
            ":watchos_armv7k": aarch32_srcs,
            ":watchos_arm64_32": aarch64_srcs,
            ":watchos_x86": x86_srcs,
            ":watchos_x86_64": x86_srcs,
            ":tvos_arm64": aarch64_srcs,
            ":tvos_x86_64": x86_srcs,
            ":emscripten_wasm": wasm_srcs,
            ":emscripten_wasmsimd": wasmsimd_srcs,
            "//conditions:default": [],
        }),
        copts = [
            "-Iinclude",
            "-Isrc",
        ] + copts + select({
            ":linux_k8": gcc_x86_copts,
            ":linux_arm": aarch32_copts,
            ":linux_armeabi": aarch32_copts,
            ":linux_armhf": aarch32_copts,
            ":linux_armv7a": aarch32_copts,
            ":linux_aarch64": aarch64_copts,
            ":macos_x86_64": gcc_x86_copts,
            ":macos_arm64": aarch64_copts,
            ":windows_x86_64_clang": ["/clang:" + opt for opt in gcc_x86_copts],
            ":windows_x86_64_mingw": mingw_copts + gcc_x86_copts,
            ":windows_x86_64_msys": msys_copts + gcc_x86_copts,
            ":windows_x86_64": msvc_x86_64_copts,
            ":android_armv7": aarch32_copts,
            ":android_arm64": aarch64_copts,
            ":android_x86": gcc_x86_copts,
            ":android_x86_64": gcc_x86_copts,
            ":ios_armv7": apple_aarch32_copts,
            ":ios_arm64": aarch64_copts,
            ":ios_arm64e": aarch64_copts,
            ":ios_x86": gcc_x86_copts,
            ":ios_x86_64": gcc_x86_copts,
            ":watchos_armv7k": apple_aarch32_copts,
            ":watchos_arm64_32": aarch64_copts,
            ":watchos_x86": gcc_x86_copts,
            ":watchos_x86_64": gcc_x86_copts,
            ":tvos_arm64": aarch64_copts,
            ":tvos_x86_64": gcc_x86_copts,
            ":emscripten_wasm": wasm_copts,
            ":emscripten_wasmsimd": wasmsimd_copts,
            "//conditions:default": [],
        }) + select({
            ":windows_x86_64_clang": ["/clang:" + opt for opt in gcc_copts],
            ":windows_x86_64_mingw": gcc_copts,
            ":windows_x86_64_msys": gcc_copts,
            ":windows_x86_64": msvc_copts,
            "//conditions:default": gcc_copts,
        }) + select({
            ":optimized_build": optimized_copts,
            "//conditions:default": [],
        }),
        defines = defines,
        deps = deps,
        includes = ["include", "src"] + includes,
        linkstatic = True,
        linkopts = select({
            ":linux_k8": ["-lpthread"],
            ":linux_arm": ["-lpthread"],
            ":linux_armeabi": ["-lpthread"],
            ":linux_armhf": ["-lpthread"],
            ":linux_armv7a": ["-lpthread"],
            ":linux_aarch64": ["-lpthread"],
            ":android": ["-lm"],
            "//conditions:default": [],
        }),
        textual_hdrs = hdrs,
        visibility = visibility,
    )

def xnnpack_aggregate_library(
        name,
        generic_deps = [],
        x86_deps = [],
        aarch32_deps = [],
        aarch64_deps = [],
        wasm_deps = [],
        wasmsimd_deps = []):
    """Static library that aggregates architecture-specific dependencies.

    Args:
      name: The name of the library target to define.
      generic_deps: The list of libraries to link on all architectures.
      x86_deps: The list of libraries to link in x86 and x86-64 builds.
      aarch32_deps: The list of libraries to link in AArch32 builds.
      aarch64_deps: The list of libraries to link in AArch32 builds.
      wasm_deps: The list of libraries to link in WebAssembly (MVP) builds.
      wasmsimd_deps: The list of libraries to link in WebAssembly SIMD builds.
    """

    native.cc_library(
        name = name,
        linkstatic = True,
        deps = generic_deps + select({
            ":linux_k8": x86_deps,
            ":linux_arm": aarch32_deps,
            ":linux_armeabi": aarch32_deps,
            ":linux_armhf": aarch32_deps,
            ":linux_armv7a": aarch32_deps,
            ":linux_aarch64": aarch64_deps,
            ":macos_x86_64": x86_deps,
            ":macos_arm64": aarch64_deps,
            ":windows_x86_64_clang": x86_deps,
            ":windows_x86_64_mingw": x86_deps,
            ":windows_x86_64_msys": x86_deps,
            ":windows_x86_64": x86_deps,
            ":android_armv7": aarch32_deps,
            ":android_arm64": aarch64_deps,
            ":android_x86": x86_deps,
            ":android_x86_64": x86_deps,
            ":ios_armv7": aarch32_deps,
            ":ios_arm64": aarch64_deps,
            ":ios_arm64e": aarch64_deps,
            ":ios_x86": x86_deps,
            ":ios_x86_64": x86_deps,
            ":watchos_armv7k": aarch32_deps,
            ":watchos_arm64_32": aarch64_deps,
            ":watchos_x86": x86_deps,
            ":watchos_x86_64": x86_deps,
            ":tvos_arm64": aarch64_deps,
            ":tvos_x86_64": x86_deps,
            ":emscripten_wasm": wasm_deps,
            ":emscripten_wasmsimd": wasmsimd_deps,
        }),
    )

def xnnpack_unit_test(name, srcs, copts = [], mingw_copts = [], msys_copts = [], deps = [], tags = [], automatic = True,  timeout = "short"):
    """Unit test binary based on Google Test.

    Args:
      name: The name of the test target to define.
      srcs: The list of source and header files.
      copts: The list of additional compiler flags for the target. -I flags
             for include/ and src/ directories of XNNPACK are always prepended
             before these user-specified flags.
      mingw_copts: The list of compiler flags to use with MinGW GCC compilers.
      msys_copts: The list of compiler flags to use with MSYS (Cygwin) GCC compilers.
      deps: The list of additional libraries to be linked. Google Test library
            (with main() function) is always added as a dependency and does not
            need to be explicitly specified.
      tags: List of arbitrary text tags.
      automatic: Whether to create the test or testable binary.
      timeout: How long the test is expected to run before returning.
    """

    if automatic:
        native.cc_test(
            name = name,
            srcs = srcs,
            copts = xnnpack_std_cxxopts() + [
                "-Iinclude",
                "-Isrc",
            ] + select({
                ":windows_x86_64_mingw": mingw_copts,
                ":windows_x86_64_msys": msys_copts,
                "//conditions:default": [],
            }) + select({
                ":windows_x86_64_clang": ["/clang:-Wno-unused-function"],
                ":windows_x86_64_mingw": ["-Wno-unused-function"],
                ":windows_x86_64_msys": ["-Wno-unused-function"],
                ":windows_x86_64": [],
                "//conditions:default": ["-Wno-unused-function"],
            }) + copts,
            linkopts = select({
                ":emscripten": xnnpack_emscripten_test_linkopts(),
                "//conditions:default": [],
            }),
            linkstatic = True,
            deps = [
                "@com_google_googletest//:gtest_main",
            ] + deps + select({
                ":emscripten": xnnpack_emscripten_deps(),
                "//conditions:default": [],
            }),
            tags = tags,
            timeout = timeout,
        )
    else:
        native.cc_binary(
            name = name,
            srcs = srcs,
            copts = xnnpack_std_cxxopts() + [
                "-Iinclude",
                "-Isrc",
            ] + select({
                ":windows_x86_64_mingw": mingw_copts,
                ":windows_x86_64_msys": msys_copts,
                "//conditions:default": [],
            }) + select({
                ":windows_x86_64_clang": ["/clang:-Wno-unused-function"],
                ":windows_x86_64_mingw": ["-Wno-unused-function"],
                ":windows_x86_64_msys": ["-Wno-unused-function"],
                ":windows_x86_64": [],
                "//conditions:default": ["-Wno-unused-function"],
            }) + copts,
            linkopts = select({
                ":emscripten": xnnpack_emscripten_test_linkopts(),
                "//conditions:default": [],
            }),
            linkstatic = True,
            deps = [
                "@com_google_googletest//:gtest_main",
            ] + deps + select({
                ":emscripten": xnnpack_emscripten_deps(),
                "//conditions:default": [],
            }),
            testonly = True,
            tags = tags,
        )

def xnnpack_binary(name, srcs, copts = [], deps = []):
    """Minimal binary

    Args:
      name: The name of the binary target to define.
      srcs: The list of source and header files.
      copts: The list of additional compiler flags for the target. -I flags
             for include/ and src/ directories of XNNPACK are always prepended
             before these user-specified flags.
      deps: The list of libraries to be linked.
    """
    native.cc_binary(
        name = name,
        srcs = srcs,
        copts = [
            "-Iinclude",
            "-Isrc",
        ] + copts,
        linkopts = select({
            ":emscripten": xnnpack_emscripten_minimal_linkopts(),
            "//conditions:default": [],
        }),
        linkstatic = True,
        deps = deps,
    )

def xnnpack_benchmark(name, srcs, copts = [], deps = [], tags = []):
    """Microbenchmark binary based on Google Benchmark

    Args:
      name: The name of the binary target to define.
      srcs: The list of source and header files.
      copts: The list of additional compiler flags for the target. -I flags
             for include/ and src/ directories of XNNPACK are always prepended
             before these user-specified flags.
      deps: The list of additional libraries to be linked. Google Benchmark
            library is always added as a dependency and does not need to be
            explicitly specified.
    """
    native.cc_binary(
        name = name,
        srcs = srcs,
        copts = xnnpack_std_cxxopts() + [
            "-Iinclude",
            "-Isrc",
        ] + select({
            ":windows_x86_64_clang": ["/clang:-Wno-unused-function"],
            ":windows_x86_64_mingw": ["-Wno-unused-function"],
            ":windows_x86_64_msys": ["-Wno-unused-function"],
            ":windows_x86_64": [],
            "//conditions:default": ["-Wno-unused-function"],
        }) + copts,
        linkopts = select({
            ":emscripten": xnnpack_emscripten_benchmark_linkopts(),
            ":windows_x86_64_mingw": ["-lshlwapi"],
            ":windows_x86_64_msys": ["-lshlwapi"],
            "//conditions:default": [],
        }),
        linkstatic = True,
        deps = [
            "@com_google_benchmark//:benchmark",
        ] + deps + select({
            ":emscripten": xnnpack_emscripten_deps(),
            "//conditions:default": [],
        }),
	tags = tags,
    )
