# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//common-mk/pkg_config.gni")

group("all") {
  deps = [
    ":libsecure_erase_file",
    ":secure_erase_file",
  ]
}

pkg_config("target_defaults") {
  pkg_deps = [
    "libbrillo-${libbase_ver}",
    "libchrome-${libbase_ver}",
  ]
}

shared_library("libsecure_erase_file") {
  configs += [ ":target_defaults" ]
  sources = [
    "secure_erase_file.cc",
  ]
}

executable("secure_erase_file") {
  configs += [ ":target_defaults" ]
  sources = [
    "secure_erase_file_main.cc",
  ]
  deps = [
    ":libsecure_erase_file",
  ]
}
