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

# Do not use the targets in this file unless you need a certain libjpeg
# implementation. Use the meta target //third_party:jpeg instead.

import("//build/config/sanitizers/sanitizers.gni")
if (current_cpu == "arm" || current_cpu == "arm64") {
  import("//build/config/arm.gni")
}

assert(!is_ios, "This is not used on iOS, don't drag it in unintentionally")

source_set("libjpeg_headers") {
  sources = [
    "jconfig.h",
    "jdct.h",
    "jinclude.h",
    "jmorecfg.h",
    "jpeglib.h",
    "jpeglibmangler.h",
  ]
  defines = [ "MANGLE_JPEG_NAMES" ]
}

if (current_cpu == "x86" || current_cpu == "x64") {
  import("//third_party/nasm/nasm_assemble.gni")

  nasm_assemble("simd_asm") {
    defines = []
    include_dirs = [ "simd/nasm/" ]

    if (current_cpu == "x86") {
      include_dirs += [ "simd/i386/" ]
      sources = [
        "simd/i386/jccolor-avx2.asm",
        "simd/i386/jccolor-mmx.asm",
        "simd/i386/jccolor-sse2.asm",
        "simd/i386/jcgray-avx2.asm",
        "simd/i386/jcgray-mmx.asm",
        "simd/i386/jcgray-sse2.asm",
        "simd/i386/jchuff-sse2.asm",
        "simd/i386/jcphuff-sse2.asm",
        "simd/i386/jcsample-avx2.asm",
        "simd/i386/jcsample-mmx.asm",
        "simd/i386/jcsample-sse2.asm",
        "simd/i386/jdcolor-avx2.asm",
        "simd/i386/jdcolor-mmx.asm",
        "simd/i386/jdcolor-sse2.asm",
        "simd/i386/jdmerge-avx2.asm",
        "simd/i386/jdmerge-mmx.asm",
        "simd/i386/jdmerge-sse2.asm",
        "simd/i386/jdsample-avx2.asm",
        "simd/i386/jdsample-mmx.asm",
        "simd/i386/jdsample-sse2.asm",
        "simd/i386/jfdctflt-3dn.asm",
        "simd/i386/jfdctflt-sse.asm",
        "simd/i386/jfdctfst-mmx.asm",
        "simd/i386/jfdctfst-sse2.asm",
        "simd/i386/jfdctint-avx2.asm",
        "simd/i386/jfdctint-mmx.asm",
        "simd/i386/jfdctint-sse2.asm",
        "simd/i386/jidctflt-3dn.asm",
        "simd/i386/jidctflt-sse.asm",
        "simd/i386/jidctflt-sse2.asm",
        "simd/i386/jidctfst-mmx.asm",
        "simd/i386/jidctfst-sse2.asm",
        "simd/i386/jidctint-avx2.asm",
        "simd/i386/jidctint-mmx.asm",
        "simd/i386/jidctint-sse2.asm",
        "simd/i386/jidctred-mmx.asm",
        "simd/i386/jidctred-sse2.asm",
        "simd/i386/jquant-3dn.asm",
        "simd/i386/jquant-mmx.asm",
        "simd/i386/jquant-sse.asm",
        "simd/i386/jquantf-sse2.asm",
        "simd/i386/jquanti-avx2.asm",
        "simd/i386/jquanti-sse2.asm",
        "simd/i386/jsimdcpu.asm",
      ]
      defines += [
        "__x86__",
        "PIC",
      ]
    } else if (current_cpu == "x64") {
      include_dirs += [ "simd/x86_64/" ]
      sources = [
        "simd/x86_64/jccolor-avx2.asm",
        "simd/x86_64/jccolor-sse2.asm",
        "simd/x86_64/jcgray-avx2.asm",
        "simd/x86_64/jcgray-sse2.asm",
        "simd/x86_64/jchuff-sse2.asm",
        "simd/x86_64/jcphuff-sse2.asm",
        "simd/x86_64/jcsample-avx2.asm",
        "simd/x86_64/jcsample-sse2.asm",
        "simd/x86_64/jdcolor-avx2.asm",
        "simd/x86_64/jdcolor-sse2.asm",
        "simd/x86_64/jdmerge-avx2.asm",
        "simd/x86_64/jdmerge-sse2.asm",
        "simd/x86_64/jdsample-avx2.asm",
        "simd/x86_64/jdsample-sse2.asm",
        "simd/x86_64/jfdctflt-sse.asm",
        "simd/x86_64/jfdctfst-sse2.asm",
        "simd/x86_64/jfdctint-avx2.asm",
        "simd/x86_64/jfdctint-sse2.asm",
        "simd/x86_64/jidctflt-sse2.asm",
        "simd/x86_64/jidctfst-sse2.asm",
        "simd/x86_64/jidctint-avx2.asm",
        "simd/x86_64/jidctint-sse2.asm",
        "simd/x86_64/jidctred-sse2.asm",
        "simd/x86_64/jquantf-sse2.asm",
        "simd/x86_64/jquanti-avx2.asm",
        "simd/x86_64/jquanti-sse2.asm",
        "simd/x86_64/jsimdcpu.asm",
      ]
      defines += [
        "__x86_64__",
        "PIC",
      ]
    }

    if (is_win) {
      defines += [ "MSVC" ]
      if (current_cpu == "x86") {
        defines += [ "WIN32" ]
      } else {
        defines += [ "WIN64" ]
      }
    } else if (is_mac || is_ios) {
      defines += [ "MACHO" ]
    } else if (is_linux || is_android || is_fuchsia || is_chromeos) {
      defines += [ "ELF" ]
    }
  }
}

static_library("simd") {
  include_dirs = [ "." ]
  deps = [ ":libjpeg_headers" ]

  if (current_cpu == "x86") {
    deps += [ ":simd_asm" ]
    sources = [ "simd/i386/jsimd.c" ]
  } else if (current_cpu == "x64") {
    deps += [ ":simd_asm" ]
    sources = [ "simd/x86_64/jsimd.c" ]
  } else if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) {
    include_dirs += [ "simd/arm/" ]

    sources = [
      "simd/arm/jccolor-neon.c",
      "simd/arm/jcgray-neon.c",
      "simd/arm/jcphuff-neon.c",
      "simd/arm/jcsample-neon.c",
      "simd/arm/jdcolor-neon.c",
      "simd/arm/jdmerge-neon.c",
      "simd/arm/jdsample-neon.c",
      "simd/arm/jfdctfst-neon.c",
      "simd/arm/jfdctint-neon.c",
      "simd/arm/jidctfst-neon.c",
      "simd/arm/jidctint-neon.c",
      "simd/arm/jidctred-neon.c",
      "simd/arm/jquanti-neon.c",
    ]
    if (current_cpu == "arm") {
      sources += [
        "simd/arm/aarch32/jchuff-neon.c",
        "simd/arm/aarch32/jsimd.c",
      ]
    } else if (current_cpu == "arm64") {
      sources += [
        "simd/arm/aarch64/jchuff-neon.c",
        "simd/arm/aarch64/jsimd.c",
      ]
    }

    defines = [ "NEON_INTRINSICS" ]

    configs -= [ "//build/config/compiler:default_optimization" ]
    configs += [ "//build/config/compiler:optimize_speed" ]
  } else {
    sources = [ "jsimd_none.c" ]
  }

  if (is_win) {
    cflags = [ "/wd4245" ]
  }
}

config("libjpeg_config") {
  include_dirs = [ "." ]
}

static_library("libjpeg") {
  sources = [
    "jcapimin.c",
    "jcapistd.c",
    "jccoefct.c",
    "jccolor.c",
    "jcdctmgr.c",
    "jchuff.c",
    "jcicc.c",
    "jcinit.c",
    "jcmainct.c",
    "jcmarker.c",
    "jcmaster.c",
    "jcomapi.c",
    "jcparam.c",
    "jcphuff.c",
    "jcprepct.c",
    "jcsample.c",
    "jctrans.c",
    "jdapimin.c",
    "jdapistd.c",
    "jdatadst.c",
    "jdatasrc.c",
    "jdcoefct.c",
    "jdcolor.c",
    "jddctmgr.c",
    "jdhuff.c",
    "jdicc.c",
    "jdinput.c",
    "jdmainct.c",
    "jdmarker.c",
    "jdmaster.c",
    "jdmerge.c",
    "jdphuff.c",
    "jdpostct.c",
    "jdsample.c",
    "jdtrans.c",
    "jerror.c",
    "jfdctflt.c",
    "jfdctfst.c",
    "jfdctint.c",
    "jidctflt.c",
    "jidctfst.c",
    "jidctint.c",
    "jidctred.c",
    "jmemmgr.c",
    "jmemnobs.c",
    "jpeg_nbits_table.c",
    "jquant1.c",
    "jquant2.c",
    "jutils.c",
  ]

  defines = [
    "WITH_SIMD",
    "NO_GETENV",
  ]

  configs += [ ":libjpeg_config" ]

  public_configs = [ ":libjpeg_config" ]
  public_deps = [ ":libjpeg_headers" ]

  # MemorySanitizer doesn't support assembly code, so keep it disabled in x86
  # and x64 MSan builds for now.
  if (is_msan && (current_cpu == "x86" || current_cpu == "x64")) {
    sources += [ "jsimd_none.c" ]
  } else {
    public_deps += [ ":simd" ]

    if ((current_cpu == "arm" || current_cpu == "arm64") && arm_use_neon) {
      defines += [ "NEON_INTRINSICS" ]
    }
  }
}

static_library("turbojpeg") {
  sources = [
    "jdatadst-tj.c",
    "jdatasrc-tj.c",
    "rdbmp.c",
    "rdppm.c",
    "transupp.c",
    "turbojpeg.c",
    "wrbmp.c",
    "wrppm.c",
  ]

  defines = [
    "WITH_SIMD",
    "BMP_SUPPORTED",
    "PPM_SUPPORTED",
  ]

  configs += [ ":libjpeg_config" ]

  public_configs = [ ":libjpeg_config" ]
  public_deps = [ ":libjpeg" ]
}

if (build_with_chromium) {
  import("//testing/test.gni")

  test("libjpeg_turbo_unittests") {
    testonly = true

    sources = [
      "cdjpeg.c",
      "cjpeg.c",
      "djpeg.c",
      "gtest/cjpeg-gtest-wrapper.cpp",
      "gtest/djpeg-gtest-wrapper.cpp",
      "gtest/gtest-utils.cpp",
      "gtest/jpegtran-gtest-wrapper.cpp",
      "gtest/tjbench-gtest-wrapper.cpp",
      "gtest/tjunittest-gtest-wrapper.cpp",
      "jpegtran.c",
      "md5/md5.c",
      "md5/md5hl.c",
      "rdcolmap.c",
      "rdgif.c",
      "rdswitch.c",
      "tjbench.c",
      "tjunittest.c",
      "tjutil.c",
    ]

    deps = [
      ":turbojpeg",
      "//base",
      "//testing/gtest",
      "//testing/gtest:gtest_main",
    ]

    data = [ "testimages/" ]

    defines = [
      "GTEST",
      "WITH_SIMD",
      "BMP_SUPPORTED",
      "PPM_SUPPORTED",
    ]

    include_dirs = [
      "//third_party/googletest/src/googletest/include/gtest",
      ".",
    ]

    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
  }
}
