예제 #1
0
def bazel_build(target,
                abi="armeabi-v7a",
                toolchain='android',
                enable_hexagon=False,
                enable_hta=False,
                enable_apu=False,
                apu_ancient=False,
                enable_neon=True,
                enable_opencl=True,
                enable_quantize=True,
                enable_bfloat16=False,
                enable_fp16=False,
                enable_rpcmem=True,
                address_sanitizer=False,
                symbol_hidden=True,
                debug_mode=False,
                extra_args=""):
    six.print_("* Build %s with ABI %s" % (target, abi))
    if abi == "host":
        toolchain = platform.system().lower()
        bazel_args = (
            "build",
            "--config",
            toolchain,
            "--define",
            "quantize=%s" % str(enable_quantize).lower(),
            "--define",
            "bfloat16=%s" % str(enable_bfloat16).lower(),
            target,
        )
    else:
        bazel_args = ("build", target, "--config", toolchain,
                      "--cpu=%s" % abi_to_internal(abi), "--define",
                      "neon=%s" % str(enable_neon).lower(), "--define",
                      "opencl=%s" % str(enable_opencl).lower(), "--define",
                      "quantize=%s" % str(enable_quantize).lower(), "--define",
                      "bfloat16=%s" % str(enable_bfloat16).lower(), "--define",
                      "fp16=%s" % str(enable_fp16).lower(), "--define",
                      "rpcmem=%s" % str(enable_rpcmem).lower(), "--define",
                      "hexagon=%s" % str(enable_hexagon).lower(), "--define",
                      "hta=%s" % str(enable_hta).lower(), "--define",
                      "apu=%s" % str(enable_apu).lower(), "--define",
                      "apu_ancient=%s" % str(apu_ancient).lower())
    if address_sanitizer:
        bazel_args += ("--config", "asan")
    if debug_mode:
        bazel_args += ("--config", "debug")
    if not address_sanitizer and not debug_mode:
        if toolchain == "darwin" or toolchain == "ios":
            bazel_args += ("--config", "optimization_darwin")
        else:
            bazel_args += ("--config", "optimization")
        if symbol_hidden:
            bazel_args += ("--config", "symbol_hidden")
    if extra_args:
        bazel_args += (extra_args, )
        six.print_(bazel_args)
    sh.bazel(_fg=True, *bazel_args)
    six.print_(bazel_args)
    six.print_("Build done!\n")
예제 #2
0
def bazel_build(target,
                abi="armeabi-v7a",
                toolchain='android',
                hexagon_mode=False,
                enable_openmp=True,
                enable_neon=True,
                enable_opencl=True,
                enable_quantize=True,
                address_sanitizer=False,
                symbol_hidden=True,
                extra_args=""):
    six.print_("* Build %s with ABI %s" % (target, abi))
    if abi == "host":
        bazel_args = (
            "build",
            "--config",
            platform.system().lower(),
            "--define",
            "openmp=%s" % str(enable_openmp).lower(),
            "--define",
            "quantize=%s" % str(enable_quantize).lower(),
            target,
        )
    else:
        bazel_args = (
            "build",
            target,
            "--config",
            toolchain,
            "--cpu=%s" % abi_to_internal(abi),
            "--define",
            "neon=%s" % str(enable_neon).lower(),
            "--define",
            "openmp=%s" % str(enable_openmp).lower(),
            "--define",
            "opencl=%s" % str(enable_opencl).lower(),
            "--define",
            "quantize=%s" % str(enable_quantize).lower(),
            "--define",
            "hexagon=%s" % str(hexagon_mode).lower())
    if address_sanitizer:
        bazel_args += ("--config", "asan")
    else:
        bazel_args += ("--config", "optimization")
    if symbol_hidden:
        bazel_args += ("--config", "symbol_hidden")
    if extra_args:
        bazel_args += (extra_args,)
        six.print_(bazel_args)
    sh.bazel(
        _fg=True,
        *bazel_args)
    six.print_("Build done!\n")