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

import("//src/sys/pkg/sysmgr_config.gni")

group("pkg") {
  testonly = true
  deps = [
    "bin",
    "lib",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    "bin:tests",
    "lib:tests",
    "testing:tests",
    "tests",
    "//src/sys/lib/fidl-fuchsia-pkg-ext:tests",
  ]
}

group("e2e_tests") {
  testonly = true
  public_deps = [ "tests:e2e_tests" ]
}

# Targets to include in the base package set for the core product.
group("core") {
  public_deps = [
    ":core_config",
    "bin/amber:pkgfs",
    "bin/pkg-cache",
    "bin/pkg-resolver",
    "bin/system-updater",
  ]
}

# Targets to include in the base package set for the core recovery image.
group("recovery-core") {
  public_deps = [
    "bin/pkg-cache",
    "bin/pkg-resolver",
  ]
}

# Targets to include in the base package set for the recovery image.
group("recovery") {
  public_deps = [
    ":recovery-core",
    "bin/omaha-client",
    "bin/system-updater",
  ]
}

# Shell control commands
group("tools") {
  public_deps = [
    "bin/amber:amberctl",
    "bin/pkgctl:pkgctl-bin",
    "bin/update:update-bin",
  ]
  deps = [ "//build/validate:non_production_tag" ]
}

group("system-update-checker") {
  public_deps = [
    "bin/system-update-checker",
    "bin/system-update-checker:config",
  ]
  # TODO(fxbug.dev/51214): Remove the comment after we update to omaha-client
  # for migration build.
  # deps = [ "//build/validate:non_production_tag" ]
}

merge_sysmgr_config("core_config") {
  output = "pkg.config"
  deps = [
    "bin/pkg-cache:config",
    "bin/pkg-resolver:config",
  ]
}

group("omaha-client") {
  public_deps = [
    "bin/omaha-client",
    "bin/omaha-client:omaha-client-config",
    "bin/omaha-client:omaha-client-sysmgr-config",
  ]
}

group("pkgfs-disable-executability-restrictions") {
  public_deps = [ "bin/pkgfs:disable-executability-restrictions" ]
  deps = [ "//build/validate:non_production_tag" ]
}
