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

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


assert(current_os == "fuchsia")

import("fuchsia_sdk_pkg.gni")

# These template is used to create build targets
# that test the generated build targets. It does not
# have any practical use outside testing.

# All vulkan targets
template("fuchsia_sdk_test_loadable_module_targets") {
  not_needed(["invoker"])
  group(target_name){
    deps = [
      "${fuchsia_sdk}/pkg/vulkan_layers:all",
    ]
  }
}

# All FIDL targets
template("fuchsia_sdk_test_fidl_targets") {
  not_needed(["invoker"])
  group(target_name){
    deps = [
      "${fuchsia_sdk}/fidl/fuchsia.accessibility.semantics:all",
      "${fuchsia_sdk}/fidl/fuchsia.auth:all",
      "${fuchsia_sdk}/fidl/fuchsia.auth.oldtokens:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth.a2dp:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth.control:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth.gatt:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth.le:all",
      "${fuchsia_sdk}/fidl/fuchsia.bluetooth.sys:all",
      "${fuchsia_sdk}/fidl/fuchsia.camera:all",
      "${fuchsia_sdk}/fidl/fuchsia.camera2:all",
      "${fuchsia_sdk}/fidl/fuchsia.camera2.hal:all",
      "${fuchsia_sdk}/fidl/fuchsia.camera3:all",
      "${fuchsia_sdk}/fidl/fuchsia.castauth:all",
      "${fuchsia_sdk}/fidl/fuchsia.castconfig:all",
      "${fuchsia_sdk}/fidl/fuchsia.castremotecontrol:all",
      "${fuchsia_sdk}/fidl/fuchsia.castsetup:all",
      "${fuchsia_sdk}/fidl/fuchsia.castsysteminfo:all",
      "${fuchsia_sdk}/fidl/fuchsia.castwindow:all",
      "${fuchsia_sdk}/fidl/fuchsia.cobalt:all",
      "${fuchsia_sdk}/fidl/fuchsia.component:all",
      "${fuchsia_sdk}/fidl/fuchsia.component.runner:all",
      "${fuchsia_sdk}/fidl/fuchsia.data:all",
      "${fuchsia_sdk}/fidl/fuchsia.deprecatedtimezone:all",
      "${fuchsia_sdk}/fidl/fuchsia.developer.tiles:all",
      "${fuchsia_sdk}/fidl/fuchsia.diagnostics:all",
      "${fuchsia_sdk}/fidl/fuchsia.factory:all",
      "${fuchsia_sdk}/fidl/fuchsia.feedback:all",
      "${fuchsia_sdk}/fidl/fuchsia.fonts:all",
      "${fuchsia_sdk}/fidl/fuchsia.hardware.ethernet:all",
      "${fuchsia_sdk}/fidl/fuchsia.hardware.goldfish:all",
      "${fuchsia_sdk}/fidl/fuchsia.hardware.light:all",
      "${fuchsia_sdk}/fidl/fuchsia.hardware.power.statecontrol:all",
      "${fuchsia_sdk}/fidl/fuchsia.hwinfo:all",
      "${fuchsia_sdk}/fidl/fuchsia.images:all",
      "${fuchsia_sdk}/fidl/fuchsia.input:all",
      "${fuchsia_sdk}/fidl/fuchsia.inspect:all",
      "${fuchsia_sdk}/fidl/fuchsia.intl:all",
      "${fuchsia_sdk}/fidl/fuchsia.io:all",
      "${fuchsia_sdk}/fidl/fuchsia.ldsvc:all",
      "${fuchsia_sdk}/fidl/fuchsia.legacymetrics:all",
      "${fuchsia_sdk}/fidl/fuchsia.location.namedplace:all",
      "${fuchsia_sdk}/fidl/fuchsia.logger:all",
      "${fuchsia_sdk}/fidl/fuchsia.math:all",
      "${fuchsia_sdk}/fidl/fuchsia.media:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.audio:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.drm:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.playback:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.sessions2:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.sounds:all",
      "${fuchsia_sdk}/fidl/fuchsia.media.target:all",
      "${fuchsia_sdk}/fidl/fuchsia.mediacodec:all",
      "${fuchsia_sdk}/fidl/fuchsia.mem:all",
      "${fuchsia_sdk}/fidl/fuchsia.memorypressure:all",
      "${fuchsia_sdk}/fidl/fuchsia.migration:all",
      "${fuchsia_sdk}/fidl/fuchsia.modular:all",
      "${fuchsia_sdk}/fidl/fuchsia.modular.auth:all",
      "${fuchsia_sdk}/fidl/fuchsia.modular.session:all",
      "${fuchsia_sdk}/fidl/fuchsia.modular.testing:all",
      "${fuchsia_sdk}/fidl/fuchsia.net:all",
      "${fuchsia_sdk}/fidl/fuchsia.net.dhcp:all",
      "${fuchsia_sdk}/fidl/fuchsia.net.http:all",
      "${fuchsia_sdk}/fidl/fuchsia.net.mdns:all",
      "${fuchsia_sdk}/fidl/fuchsia.net.oldhttp:all",
      "${fuchsia_sdk}/fidl/fuchsia.netstack:all",
      "${fuchsia_sdk}/fidl/fuchsia.posix.socket:all",
      "${fuchsia_sdk}/fidl/fuchsia.process:all",
      "${fuchsia_sdk}/fidl/fuchsia.recovery:all",
      "${fuchsia_sdk}/fidl/fuchsia.recovery.ui:all",
      "${fuchsia_sdk}/fidl/fuchsia.scenic.scheduling:all",
      "${fuchsia_sdk}/fidl/fuchsia.settings:all",
      "${fuchsia_sdk}/fidl/fuchsia.sys:all",
      "${fuchsia_sdk}/fidl/fuchsia.sys.test:all",
      "${fuchsia_sdk}/fidl/fuchsia.sysinfo:all",
      "${fuchsia_sdk}/fidl/fuchsia.sysmem:all",
      "${fuchsia_sdk}/fidl/fuchsia.tracing.provider:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.activity:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.activity.control:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.app:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.brightness:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.gfx:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.input:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.input2:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.input3:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.lifecycle:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.policy:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.scenic:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.types:all",
      "${fuchsia_sdk}/fidl/fuchsia.ui.views:all",
      "${fuchsia_sdk}/fidl/fuchsia.update:all",
      "${fuchsia_sdk}/fidl/fuchsia.update.channel:all",
      "${fuchsia_sdk}/fidl/fuchsia.update.channelcontrol:all",
      "${fuchsia_sdk}/fidl/fuchsia.url:all",
      "${fuchsia_sdk}/fidl/fuchsia.weave:all",
      "${fuchsia_sdk}/fidl/fuchsia.web:all",
      "${fuchsia_sdk}/fidl/fuchsia.wlan.common:all",
      "${fuchsia_sdk}/fidl/fuchsia.wlan.policy:all",
      "${fuchsia_sdk}/fidl/fuchsia.wlan.service:all",
      "${fuchsia_sdk}/fidl/fuchsia.wlan.stats:all",
    ]
  }
}

# All CC source targets
template("fuchsia_sdk_test_cc_source_targets") {
  not_needed(["invoker"])
  group(target_name){
    deps = [
      "${fuchsia_sdk}/pkg/async:all",
      "${fuchsia_sdk}/pkg/async-cpp:all",
      "${fuchsia_sdk}/pkg/async-loop:all",
      "${fuchsia_sdk}/pkg/async-loop-cpp:all",
      "${fuchsia_sdk}/pkg/async-testing:all",
      "${fuchsia_sdk}/pkg/fidl:all",
      "${fuchsia_sdk}/pkg/fidl-async:all",
      "${fuchsia_sdk}/pkg/fidl_base:all",
      "${fuchsia_sdk}/pkg/fidl_cpp:all",
      "${fuchsia_sdk}/pkg/fidl_cpp_base:all",
      "${fuchsia_sdk}/pkg/fidl_cpp_sync:all",
      "${fuchsia_sdk}/pkg/fit:all",
      "${fuchsia_sdk}/pkg/images_cpp:all",
      "${fuchsia_sdk}/pkg/inspect:all",
      "${fuchsia_sdk}/pkg/inspect_service_cpp:all",
      "${fuchsia_sdk}/pkg/media_cpp:all",
      "${fuchsia_sdk}/pkg/media_cpp_no_converters:all",
      "${fuchsia_sdk}/pkg/modular_cpp:all",
      "${fuchsia_sdk}/pkg/modular_testing_cpp:all",
      "${fuchsia_sdk}/pkg/scenic_cpp:all",
      "${fuchsia_sdk}/pkg/sys_cpp:all",
      "${fuchsia_sdk}/pkg/sys_cpp_testing:all",
      "${fuchsia_sdk}/pkg/sys_inspect_cpp:all",
      "${fuchsia_sdk}/pkg/sys_service_cpp:all",
      "${fuchsia_sdk}/pkg/trace:all",
      "${fuchsia_sdk}/pkg/vfs_cpp:all",
      "${fuchsia_sdk}/pkg/zx:all",
    ]
  }
}

# All CC prebuilt targets
template("fuchsia_sdk_test_cc_prebuilt_targets") {
  not_needed(["invoker"])
  group(target_name){
    deps = [
      "${fuchsia_sdk}/pkg/async-default:all",
      "${fuchsia_sdk}/pkg/async-loop-default:all",
      "${fuchsia_sdk}/pkg/fdio:all",
      "${fuchsia_sdk}/pkg/memfs:all",
      "${fuchsia_sdk}/pkg/svc:all",
      "${fuchsia_sdk}/pkg/sync:all",
      "${fuchsia_sdk}/pkg/syslog:all",
      "${fuchsia_sdk}/pkg/trace-engine:all",
      "${fuchsia_sdk}/pkg/trace-provider-so:all",
      "${fuchsia_sdk}/pkg/vulkan:all",
    ]
  }
}

# All test targets
template("fuchsia_sdk_test_targets"){
  not_needed(["invoker"])
  fuchsia_sdk_test_loadable_module_targets("loadable_module_targets"){
  }
  fuchsia_sdk_test_fidl_targets("fidl_targets"){
  }
  fuchsia_sdk_test_cc_source_targets("cc_source_targets"){
  }
  fuchsia_sdk_test_cc_prebuilt_targets("cc_prebuilt_targets"){
  }
  group(target_name){
    deps = [
      ":loadable_module_targets",
      ":fidl_targets",
      ":cc_source_targets",
      ":cc_prebuilt_targets",
    ]
  }
}
