# Copyright 2019 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT

import("//build/zircon/migrated_targets.gni")
import("params.gni")

zx_library("crashlog") {
  sources = [
    "crashlog.cc",
    "panic_buffer.cc",
  ]
  deps = [
    "//zircon/kernel/lib/boot-options",
    "//zircon/kernel/lib/console",
    "//zircon/kernel/lib/counters",
    "//zircon/kernel/lib/io",
    "//zircon/kernel/lib/version",
    "//zircon/kernel/object:headers",
  ]
  public_configs = [
    ":config",
    "//zircon/kernel:persistent_ram_config",
  ]

  # TODO: testonly
  deps += [ "test" ]
}

config("config") {
  visibility = [ ":*" ]
  defines = [ "MIN_CRASHLOG_SIZE=$min_crashlog_size" ]
}
