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

visibility = ["//sky/engine/*"]

source_set("heap") {
  sources = [
    "AddressSanitizer.h",
    "Handle.cpp",
    "Handle.h",
    "Heap.cpp",
    "Heap.h",
    "ThreadState.cpp",
    "ThreadState.h",
    "Visitor.cpp",
    "Visitor.h",
  ]
  if (cpu_arch == "x86" || cpu_arch == "x64") {
    sources += [ "asm/SaveRegisters_x86.asm" ]
  } else if (cpu_arch == "arm") {
    sources += [ "asm/SaveRegisters_arm.S" ]
  } else if (cpu_arch == "arm64") {
    sources += [ "asm/SaveRegisters_arm64.S" ]
  } else if (cpu_arch == "mipsel") {
    sources += [ "asm/SaveRegisters_mips.S" ]
  }

  configs += [ "//sky/engine:config" ]

  deps = [
    "//third_party/icu",
  ]
}
