# Copyright 2017 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.

# This file is based on:
# https://skia.googlesource.com/skia/+/main/third_party/libwebp/BUILD.gn
config("libwebp_config") {
  include_dirs = [
    "//third_party/libwebp/src",
    "//third_party/libwebp",
  ]
}

config("libwebp_defines") {
  defines = [
    # WebP naturally decodes to RGB_565, Skia with BGR_565.
    # This makes WebP decode to BGR_565 when we ask for RGB_565.
    # (It also swaps the color order for 4444, but we don't care today.)
    "WEBP_SWAP_16BIT_CSP",
    # Prevent WebP symbols from being exposed.
    "WEBP_EXTERN=extern",
  ]
}

source_set("libwebp_sse41") {
  include_dirs = [
    "//third_party/libwebp/src",
    "//third_party/libwebp",
  ]
  configs += [ ":libwebp_defines" ]
  sources = [
    "//third_party/libwebp/src/dsp/alpha_processing_sse41.c",
    "//third_party/libwebp/src/dsp/dec_sse41.c",
    "//third_party/libwebp/src/dsp/enc_sse41.c",
    "//third_party/libwebp/src/dsp/lossless_enc_sse41.c",
    "//third_party/libwebp/src/dsp/upsampling_sse41.c",
    "//third_party/libwebp/src/dsp/yuv_sse41.c",
  ]
  if ((current_cpu == "x86" || current_cpu == "x64") && (!is_win || is_clang)) {
    cflags_c = [ "-msse4.1" ]
  }
}

source_set("libwebp") {
  public_configs = [ ":libwebp_config" ]
  include_dirs = [
    "//third_party/libwebp/src",
    "//third_party/libwebp",
  ]

  deps = [ ":libwebp_sse41" ]

  if (is_android) {
    deps += [ "//third_party/cpu-features" ]
  }

  configs += [ ":libwebp_defines" ]

  sources = [
    "//third_party/libwebp/src/dec/alpha_dec.c",
    "//third_party/libwebp/src/dec/buffer_dec.c",
    "//third_party/libwebp/src/dec/frame_dec.c",
    "//third_party/libwebp/src/dec/idec_dec.c",
    "//third_party/libwebp/src/dec/io_dec.c",
    "//third_party/libwebp/src/dec/quant_dec.c",
    "//third_party/libwebp/src/dec/tree_dec.c",
    "//third_party/libwebp/src/dec/vp8_dec.c",
    "//third_party/libwebp/src/dec/vp8l_dec.c",
    "//third_party/libwebp/src/dec/webp_dec.c",
    "//third_party/libwebp/src/demux/anim_decode.c",
    "//third_party/libwebp/src/demux/demux.c",
    "//third_party/libwebp/src/dsp/alpha_processing.c",
    "//third_party/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/alpha_processing_neon.c",
    "//third_party/libwebp/src/dsp/alpha_processing_sse2.c",
    "//third_party/libwebp/src/dsp/cost.c",
    "//third_party/libwebp/src/dsp/cost_mips32.c",
    "//third_party/libwebp/src/dsp/cost_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/cost_neon.c",
    "//third_party/libwebp/src/dsp/cost_sse2.c",
    "//third_party/libwebp/src/dsp/cpu.c",
    "//third_party/libwebp/src/dsp/dec.c",
    "//third_party/libwebp/src/dsp/dec_clip_tables.c",
    "//third_party/libwebp/src/dsp/dec_mips32.c",
    "//third_party/libwebp/src/dsp/dec_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/dec_msa.c",
    "//third_party/libwebp/src/dsp/dec_neon.c",
    "//third_party/libwebp/src/dsp/dec_sse2.c",
    "//third_party/libwebp/src/dsp/enc.c",
    "//third_party/libwebp/src/dsp/enc_mips32.c",
    "//third_party/libwebp/src/dsp/enc_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/enc_msa.c",
    "//third_party/libwebp/src/dsp/enc_neon.c",
    "//third_party/libwebp/src/dsp/enc_sse2.c",
    "//third_party/libwebp/src/dsp/filters.c",
    "//third_party/libwebp/src/dsp/filters_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/filters_msa.c",
    "//third_party/libwebp/src/dsp/filters_neon.c",
    "//third_party/libwebp/src/dsp/filters_sse2.c",
    "//third_party/libwebp/src/dsp/lossless.c",
    "//third_party/libwebp/src/dsp/lossless_enc.c",
    "//third_party/libwebp/src/dsp/lossless_enc_mips32.c",
    "//third_party/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/lossless_enc_msa.c",
    "//third_party/libwebp/src/dsp/lossless_enc_neon.c",
    "//third_party/libwebp/src/dsp/lossless_enc_sse2.c",
    "//third_party/libwebp/src/dsp/lossless_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/lossless_msa.c",
    "//third_party/libwebp/src/dsp/lossless_neon.c",
    "//third_party/libwebp/src/dsp/lossless_sse2.c",
    "//third_party/libwebp/src/dsp/rescaler.c",
    "//third_party/libwebp/src/dsp/rescaler_mips32.c",
    "//third_party/libwebp/src/dsp/rescaler_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/rescaler_msa.c",
    "//third_party/libwebp/src/dsp/rescaler_neon.c",
    "//third_party/libwebp/src/dsp/rescaler_sse2.c",
    "//third_party/libwebp/src/dsp/ssim.c",
    "//third_party/libwebp/src/dsp/ssim_sse2.c",
    "//third_party/libwebp/src/dsp/upsampling.c",
    "//third_party/libwebp/src/dsp/upsampling_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/upsampling_msa.c",
    "//third_party/libwebp/src/dsp/upsampling_neon.c",
    "//third_party/libwebp/src/dsp/upsampling_sse2.c",
    "//third_party/libwebp/src/dsp/yuv.c",
    "//third_party/libwebp/src/dsp/yuv_mips32.c",
    "//third_party/libwebp/src/dsp/yuv_mips_dsp_r2.c",
    "//third_party/libwebp/src/dsp/yuv_neon.c",
    "//third_party/libwebp/src/dsp/yuv_sse2.c",
    "//third_party/libwebp/src/enc/alpha_enc.c",
    "//third_party/libwebp/src/enc/analysis_enc.c",
    "//third_party/libwebp/src/enc/backward_references_cost_enc.c",
    "//third_party/libwebp/src/enc/backward_references_enc.c",
    "//third_party/libwebp/src/enc/config_enc.c",
    "//third_party/libwebp/src/enc/cost_enc.c",
    "//third_party/libwebp/src/enc/filter_enc.c",
    "//third_party/libwebp/src/enc/frame_enc.c",
    "//third_party/libwebp/src/enc/histogram_enc.c",
    "//third_party/libwebp/src/enc/iterator_enc.c",
    "//third_party/libwebp/src/enc/near_lossless_enc.c",
    "//third_party/libwebp/src/enc/picture_csp_enc.c",
    "//third_party/libwebp/src/enc/picture_enc.c",
    "//third_party/libwebp/src/enc/picture_psnr_enc.c",
    "//third_party/libwebp/src/enc/picture_rescale_enc.c",
    "//third_party/libwebp/src/enc/picture_tools_enc.c",
    "//third_party/libwebp/src/enc/predictor_enc.c",
    "//third_party/libwebp/src/enc/quant_enc.c",
    "//third_party/libwebp/src/enc/syntax_enc.c",
    "//third_party/libwebp/src/enc/token_enc.c",
    "//third_party/libwebp/src/enc/tree_enc.c",
    "//third_party/libwebp/src/enc/vp8l_enc.c",
    "//third_party/libwebp/src/enc/webp_enc.c",
    "//third_party/libwebp/src/mux/anim_encode.c",
    "//third_party/libwebp/src/mux/muxedit.c",
    "//third_party/libwebp/src/mux/muxinternal.c",
    "//third_party/libwebp/src/mux/muxread.c",
    "//third_party/libwebp/src/utils/bit_reader_utils.c",
    "//third_party/libwebp/src/utils/bit_writer_utils.c",
    "//third_party/libwebp/src/utils/color_cache_utils.c",
    "//third_party/libwebp/src/utils/filters_utils.c",
    "//third_party/libwebp/src/utils/huffman_encode_utils.c",
    "//third_party/libwebp/src/utils/huffman_utils.c",
    "//third_party/libwebp/src/utils/quant_levels_dec_utils.c",
    "//third_party/libwebp/src/utils/quant_levels_utils.c",
    "//third_party/libwebp/src/utils/random_utils.c",
    "//third_party/libwebp/src/utils/rescaler_utils.c",
    "//third_party/libwebp/src/utils/thread_utils.c",
    "//third_party/libwebp/src/utils/utils.c",
  ]
}
