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

import("//sdk/ctf/build/allowed_ctf_deps.gni")
import("//sdk/ctf/build/verify_deps_in_sdk.gni")

# Defines a CTF element.
#
# Ensures that dependencies are allowed in CTF. This template should not be used
# directly, but through the other CTF templates.
template("ctf_element") {
  verify_deps_in_sdk(target_name) {
    forward_variables_from(invoker, "*")
    allowed_deps =
        ALLOWED_CTS_DEPS + ALLOWED_RUST_DEPS + ALLOWED_EXPERIMENTAL_FIDL
    allowed_dirs = ALLOWED_CTS_DIRS
  }
}
