# Copyright 2016 The Fuchsia 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 = [ "." ]
}

source_set("qcms") {
  public_configs = [ ":qcms_config" ]

  sources = [
    "chain.c",
    "chain.h",
    "iccread.c",
    "matrix.c",
    "matrix.h",
    "qcms.h",
    "qcms_util.c",
    "qcmsint.h",
    "qcmstypes.h",
    "transform.c",
    "transform_util.c",
    "transform_util.h",
  ]

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