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

config("qcms_config") {
  include_dirs = [ "src" ]
}

source_set("qcms") {
  sources = [
    "src/chain.c",
    "src/chain.h",
    "src/iccread.c",
    "src/matrix.c",
    "src/matrix.h",
    "src/qcms.h",
    "src/qcmsint.h",
    "src/qcmstypes.h",
    "src/transform.c",
    "src/transform_util.c",
    "src/transform_util.h",
  ]

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

  if (current_cpu == "x86" || current_cpu == "x64") {
    defines = [ "SSE2_ENABLE" ]
    sources += [ "src/transform-sse2.c" ]
  }

  if (is_win) {
    cflags = [
      "/wd4056",  # Overflow in floating-point constant arithmetic (INFINITY).
      "/wd4756",  # Overflow in constant arithmetic (INFINITY).
    ]
  }
}
