# 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_tools: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 = [
      "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 = [
      "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 = [
      "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",
    ]

    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",
    ]

    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" ]
}
