# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build/config/arm.gni")
import("//build/config/sanitizers/sanitizers.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

config("libwebp_config") {
  include_dirs = [ "./src" ]
  defines = [ "WEBP_EXTERN=extern" ]
}

config("libwebp_config_internal") {
  include_dirs = [ "." ]
  defines = [
    "WEBP_NEAR_LOSSLESS=0",
    "WEBP_DISABLE_STATS",
    "WEBP_REDUCE_SIZE",
  ]
  if (!is_ios) {
    defines += [ "WEBP_REDUCE_CSP" ]
  }
}

set_opt_level = !is_debug && (is_posix || is_fuchsia) &&
                (current_cpu == "arm" || current_cpu == "arm64")

# webp's dsp code can be built for all configurations. Skipping it when both
# arm_use_neon and arm_optionally_use_neon are false will result in link errors
# for its dsp init functions.
use_dsp_neon =
    current_cpu == "arm64" || (current_cpu == "arm" && arm_version >= 7)

source_set("libwebp_webp") {
  sources = [
    "src/webp/decode.h",
    "src/webp/demux.h",
    "src/webp/encode.h",
    "src/webp/format_constants.h",
    "src/webp/mux.h",
    "src/webp/mux_types.h",
    "src/webp/types.h",
  ]
}

static_library("libwebp_dec") {
  sources = [
    "src/dec/alpha_dec.c",
    "src/dec/alphai_dec.h",
    "src/dec/buffer_dec.c",
    "src/dec/common_dec.h",
    "src/dec/frame_dec.c",
    "src/dec/idec_dec.c",
    "src/dec/io_dec.c",
    "src/dec/quant_dec.c",
    "src/dec/tree_dec.c",
    "src/dec/vp8_dec.c",
    "src/dec/vp8_dec.h",
    "src/dec/vp8i_dec.h",
    "src/dec/vp8l_dec.c",
    "src/dec/vp8li_dec.h",
    "src/dec/webp_dec.c",
    "src/dec/webpi_dec.h",
  ]

  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  deps = [
    ":libwebp_dsp",
    ":libwebp_utils",
    ":libwebp_webp",
  ]
  all_dependent_configs = [ ":libwebp_config" ]
  if (use_dsp_neon) {
    deps += [ ":libwebp_dsp_neon" ]
  }
}

static_library("libwebp_demux") {
  sources = [
    "src/demux/demux.c",
  ]
  all_dependent_configs = [ ":libwebp_config" ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  deps = [
    ":libwebp_utils",
    ":libwebp_webp",
  ]
}

static_library("libwebp_mux") {
  sources = [
    "src/mux/anim_encode.c",
    "src/mux/animi.h",
    "src/mux/muxedit.c",
    "src/mux/muxi.h",
    "src/mux/muxinternal.c",
    "src/mux/muxread.c",
  ]
  all_dependent_configs = [ ":libwebp_config" ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  deps = [
    ":libwebp_dec",
    ":libwebp_utils",
    ":libwebp_webp",
  ]
}

static_library("libwebp_dsp") {
  sources = [
    "src/dsp/alpha_processing.c",
    "src/dsp/alpha_processing_mips_dsp_r2.c",
    "src/dsp/cost.c",
    "src/dsp/cost_mips32.c",
    "src/dsp/cost_mips_dsp_r2.c",
    "src/dsp/cpu.c",
    "src/dsp/dec.c",
    "src/dsp/dec_clip_tables.c",
    "src/dsp/dec_mips32.c",
    "src/dsp/dec_mips_dsp_r2.c",
    "src/dsp/dec_msa.c",
    "src/dsp/dsp.h",
    "src/dsp/enc.c",
    "src/dsp/enc_mips32.c",
    "src/dsp/enc_mips_dsp_r2.c",
    "src/dsp/enc_msa.c",
    "src/dsp/filters.c",
    "src/dsp/filters_mips_dsp_r2.c",
    "src/dsp/filters_msa.c",
    "src/dsp/lossless.c",
    "src/dsp/lossless.h",
    "src/dsp/lossless_common.h",
    "src/dsp/lossless_enc.c",
    "src/dsp/lossless_enc_mips32.c",
    "src/dsp/lossless_enc_mips_dsp_r2.c",
    "src/dsp/lossless_enc_msa.c",
    "src/dsp/lossless_mips_dsp_r2.c",
    "src/dsp/lossless_msa.c",
    "src/dsp/mips_macro.h",
    "src/dsp/msa_macro.h",
    "src/dsp/neon.h",
    "src/dsp/quant.h",
    "src/dsp/rescaler.c",
    "src/dsp/rescaler_mips32.c",
    "src/dsp/rescaler_mips_dsp_r2.c",
    "src/dsp/rescaler_msa.c",
    "src/dsp/ssim.c",
    "src/dsp/upsampling.c",
    "src/dsp/upsampling_mips_dsp_r2.c",
    "src/dsp/upsampling_msa.c",
    "src/dsp/yuv.c",
    "src/dsp/yuv.h",
    "src/dsp/yuv_mips32.c",
    "src/dsp/yuv_mips_dsp_r2.c",
  ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  all_dependent_configs = [ ":libwebp_config" ]
  deps = [
    ":libwebp_dsp_sse2",
    ":libwebp_dsp_sse41",
    ":libwebp_utils",
    ":libwebp_webp",
  ]
  if (is_android) {
    deps += [ "//third_party/android_ndk:cpu_features" ]
  }
  if (current_cpu == "x86" || current_cpu == "x64") {
    defines = [
      "WEBP_HAVE_SSE2",
      "WEBP_HAVE_SSE41",
    ]
  }
}

static_library("libwebp_dsp_sse41") {
  sources = [
    "src/dsp/alpha_processing_sse41.c",
    "src/dsp/common_sse41.h",
    "src/dsp/dec_sse41.c",
    "src/dsp/enc_sse41.c",
    "src/dsp/lossless_enc_sse41.c",
    "src/dsp/upsampling_sse41.c",
    "src/dsp/yuv_sse41.c",
  ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  all_dependent_configs = [ ":libwebp_config" ]
  if (!is_msan) {
    if ((current_cpu == "x86" || current_cpu == "x64") &&
        (!is_win || is_clang)) {
      cflags = [ "-msse4.1" ]
    }
  }
}

static_library("libwebp_dsp_sse2") {
  sources = [
    "src/dsp/alpha_processing_sse2.c",
    "src/dsp/common_sse2.h",
    "src/dsp/cost_sse2.c",
    "src/dsp/dec_sse2.c",
    "src/dsp/enc_sse2.c",
    "src/dsp/filters_sse2.c",
    "src/dsp/lossless_enc_sse2.c",
    "src/dsp/lossless_sse2.c",
    "src/dsp/rescaler_sse2.c",
    "src/dsp/ssim_sse2.c",
    "src/dsp/upsampling_sse2.c",
    "src/dsp/yuv_sse2.c",
  ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  all_dependent_configs = [ ":libwebp_config" ]
  if (!is_msan) {
    if ((current_cpu == "x86" || current_cpu == "x64") &&
        (!is_win || is_clang)) {
      cflags = [ "-msse2" ]
    }
  }
}

if (use_dsp_neon) {
  static_library("libwebp_dsp_neon") {
    sources = [
      "src/dsp/alpha_processing_neon.c",
      "src/dsp/cost_neon.c",
      "src/dsp/dec_neon.c",
      "src/dsp/enc_neon.c",
      "src/dsp/filters_neon.c",
      "src/dsp/lossless_enc_neon.c",
      "src/dsp/lossless_neon.c",
      "src/dsp/rescaler_neon.c",
      "src/dsp/upsampling_neon.c",
      "src/dsp/yuv_neon.c",
    ]

    configs += [ ":libwebp_config_internal" ]

    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    if (current_cpu == "arm") {
      # behavior similar to *.c.neon in an Android.mk
      configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
      cflags = [ "-mfpu=neon" ]
    } else if (current_cpu == "arm64" && !is_clang) {
      # avoid an ICE with gcc-4.9: b/15574841
      cflags = [ "-frename-registers" ]
    }
  }
}  # use_dsp_neon

static_library("libwebp_enc") {
  sources = [
    "src/enc/alpha_enc.c",
    "src/enc/analysis_enc.c",
    "src/enc/backward_references_cost_enc.c",
    "src/enc/backward_references_enc.c",
    "src/enc/backward_references_enc.h",
    "src/enc/config_enc.c",
    "src/enc/cost_enc.c",
    "src/enc/cost_enc.h",
    "src/enc/filter_enc.c",
    "src/enc/frame_enc.c",
    "src/enc/histogram_enc.c",
    "src/enc/histogram_enc.h",
    "src/enc/iterator_enc.c",
    "src/enc/near_lossless_enc.c",
    "src/enc/picture_csp_enc.c",
    "src/enc/picture_enc.c",
    "src/enc/picture_psnr_enc.c",
    "src/enc/picture_rescale_enc.c",
    "src/enc/picture_tools_enc.c",
    "src/enc/predictor_enc.c",
    "src/enc/quant_enc.c",
    "src/enc/syntax_enc.c",
    "src/enc/token_enc.c",
    "src/enc/tree_enc.c",
    "src/enc/vp8i_enc.h",
    "src/enc/vp8l_enc.c",
    "src/enc/vp8li_enc.h",
    "src/enc/webp_enc.c",
  ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  all_dependent_configs = [ ":libwebp_config" ]

  deps = [
    ":libwebp_utils",
    ":libwebp_webp",
  ]
}

config("libwebp_utils_warnings") {
  if (is_clang) {
    # See https://code.google.com/p/webp/issues/detail?id=253.
    cflags = [ "-Wno-incompatible-pointer-types" ]
  }
}

static_library("libwebp_utils") {
  sources = [
    "src/utils/bit_reader_inl_utils.h",
    "src/utils/bit_reader_utils.c",
    "src/utils/bit_reader_utils.h",
    "src/utils/bit_writer_utils.c",
    "src/utils/bit_writer_utils.h",
    "src/utils/color_cache_utils.c",
    "src/utils/color_cache_utils.h",
    "src/utils/endian_inl_utils.h",
    "src/utils/filters_utils.c",
    "src/utils/filters_utils.h",
    "src/utils/huffman_encode_utils.c",
    "src/utils/huffman_encode_utils.h",
    "src/utils/huffman_utils.c",
    "src/utils/huffman_utils.h",
    "src/utils/quant_levels_dec_utils.c",
    "src/utils/quant_levels_dec_utils.h",
    "src/utils/quant_levels_utils.c",
    "src/utils/quant_levels_utils.h",
    "src/utils/random_utils.c",
    "src/utils/random_utils.h",
    "src/utils/rescaler_utils.c",
    "src/utils/rescaler_utils.h",
    "src/utils/thread_utils.c",
    "src/utils/thread_utils.h",
    "src/utils/utils.c",
    "src/utils/utils.h",
  ]
  configs += [ ":libwebp_config_internal" ]
  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  if (set_opt_level) {
    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_max" ]
  }

  all_dependent_configs = [ ":libwebp_config" ]

  public_configs = [ ":libwebp_utils_warnings" ]

  deps = [
    ":libwebp_webp",
  ]
}

group("libwebp") {
  deps = [
    ":libwebp_dec",
    ":libwebp_demux",
    ":libwebp_dsp",
    ":libwebp_enc",
    ":libwebp_mux",
    ":libwebp_utils",
  ]
  public_deps = [
    ":libwebp_webp",
  ]
  public_configs = [ ":libwebp_config" ]
  if (use_dsp_neon) {
    deps += [ ":libwebp_dsp_neon" ]
  }
}

###############################################################################
# Executables

if (current_toolchain == host_toolchain) {
  source_set("example_util") {
    sources = [
      "examples/example_util.c",
      "examples/example_util.h",
    ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    deps = [
      ":imageio_util",
      ":libwebp_webp",
    ]
    configs += [ ":libwebp_config" ]
    configs += [ ":libwebp_config_internal" ]
    visibility = [ ":*" ]
  }

  source_set("imageio_util") {
    sources = [
      "examples/unicode.h",
      "imageio/imageio_util.c",
      "imageio/imageio_util.h",
    ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    deps = [
      ":libwebp_webp",
    ]
    configs += [ ":libwebp_config" ]
    configs += [ ":libwebp_config_internal" ]
    visibility = [ ":*" ]
  }

  source_set("imagedec") {
    sources = [
      "examples/unicode.h",
      "imageio/image_dec.c",
      "imageio/image_dec.h",
      "imageio/jpegdec.c",
      "imageio/jpegdec.h",
      "imageio/metadata.c",
      "imageio/metadata.h",
      "imageio/pngdec.c",
      "imageio/pngdec.h",
      "imageio/pnmdec.c",
      "imageio/pnmdec.h",
      "imageio/tiffdec.c",
      "imageio/tiffdec.h",
      "imageio/webpdec.c",
      "imageio/webpdec.h",
      "imageio/wicdec.c",
      "imageio/wicdec.h",
    ]
    defines = [ "WEBP_HAVE_PNG" ]
    configs += [ ":libwebp_config_internal" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    deps = [
      ":imageio_util",
      ":libwebp_webp",
      "//third_party/libpng",
      "//third_party/zlib",
    ]
    configs += [ ":libwebp_config" ]
    visibility = [ ":*" ]
  }

  source_set("imageenc") {
    sources = [
      "examples/unicode.h",
      "imageio/image_enc.c",
      "imageio/image_enc.h",
    ]
    configs += [ ":libwebp_config_internal" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }

    deps = [
      ":imageio_util",
      ":libwebp_webp",
    ]
    configs += [ ":libwebp_config" ]
    visibility = [ ":*" ]
  }

  executable("cwebp") {
    sources = [
      "examples/cwebp.c",
      "examples/stopwatch.h",
      "examples/unicode.h",
    ]

    deps = [
      ":example_util",
      ":imagedec",
      ":imageio_util",
      ":libwebp",
      ":libwebp_webp",
      "//base",
      "//build/win:default_exe_manifest",
    ]
    configs += [ ":libwebp_config_internal" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }
  }

  executable("dwebp") {
    sources = [
      "examples/dwebp.c",
      "examples/stopwatch.h",
      "examples/unicode.h",
    ]

    deps = [
      ":example_util",
      ":imagedec",
      ":imageenc",
      ":imageio_util",
      ":libwebp",
      ":libwebp_webp",
      "//base",
      "//build/win:default_exe_manifest",
    ]
    configs += [ ":libwebp_config_internal" ]
    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    if (set_opt_level) {
      configs -= [ "//build/config/compiler:default_optimization" ]
      configs += [ "//build/config/compiler:optimize_max" ]
    }
  }
}

############################################################################## #
# Fuzzers
# TODO(https://bugs.chromium.org/p/webp/issues/detail?id=409):
#     Eliminated need for cflags_cc.

fuzzer_test("libwebp_simple_api_fuzzer") {
  sources = [
    "fuzzing/fuzz_simple_api.cc",
  ]
  dict = "fuzzing/fuzz.dict"
  seed_corpus = "fuzzing/fuzz_seed_corpus"
  deps = [
    ":libwebp",
    ":libwebp_webp",
  ]
  cflags_cc = [ "-Wno-unused-function" ]
  defines = [ "WEBP_MAX_IMAGE_SIZE=838860800" ]
  additional_configs = [ ":libwebp_config_internal" ]
}

fuzzer_test("libwebp_advanced_api_fuzzer") {
  sources = [
    "fuzzing/fuzz_advanced_api.cc",
  ]
  dict = "fuzzing/fuzz.dict"
  seed_corpus = "fuzzing/fuzz_seed_corpus"
  deps = [
    ":libwebp",
    ":libwebp_webp",
  ]
  cflags_cc = [ "-Wno-unused-function" ]
  defines = [ "WEBP_MAX_IMAGE_SIZE=838860800" ]
  additional_configs = [ ":libwebp_config_internal" ]
}

fuzzer_test("libwebp_animation_api_fuzzer") {
  sources = [
    "fuzzing/fuzz_animation_api.cc",
    "src/demux/anim_decode.c",
  ]
  dict = "fuzzing/fuzz.dict"
  seed_corpus = "fuzzing/fuzz_seed_corpus"
  deps = [
    ":libwebp",
    ":libwebp_webp",
  ]
  cflags_cc = [ "-Wno-unused-function" ]
  defines = [ "WEBP_MAX_IMAGE_SIZE=838860800" ]
  additional_configs = [ ":libwebp_config_internal" ]
}

fuzzer_test("libwebp_demux_api_fuzzer") {
  sources = [
    "fuzzing/fuzz_demux_api.cc",
  ]
  dict = "fuzzing/fuzz.dict"
  seed_corpus = "fuzzing/fuzz_seed_corpus"
  deps = [
    ":libwebp",
    ":libwebp_webp",
  ]
  cflags_cc = [ "-Wno-unused-function" ]
  defines = [ "WEBP_MAX_IMAGE_SIZE=838860800" ]
  additional_configs = [ ":libwebp_config_internal" ]
}

fuzzer_test("libwebp_enc_dec_api_fuzzer") {
  sources = [
    "fuzzing/fuzz_webp_enc_dec.cc",
  ]
  dict = "fuzzing/fuzz.dict"
  seed_corpus = "fuzzing/fuzz_seed_corpus"
  deps = [
    ":libwebp",
    ":libwebp_webp",
  ]
  cflags_cc = [ "-Wno-unused-function" ]
  defines = [ "WEBP_MAX_IMAGE_SIZE=838860800" ]
  additional_configs = [ ":libwebp_config_internal" ]
}
