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

import("//build/config/rust.gni")
import("//build/rust/rust_target.gni")

# Template for generating a Rust proc-macro library. Such targets produce a
# dynamic library that is loaded during compilation and used to generate Rust
# code for compilation.
template("rust_macro") {
  rust_target(target_name) {
    forward_variables_from(invoker,
                           "*",
                           TESTONLY_AND_VISIBILITY + [ "configs" ])
    forward_variables_from(invoker, TESTONLY_AND_VISIBILITY)
    proc_macro_configs = invoker.configs
    target_type = "rust_proc_macro"
  }
}

set_defaults("rust_macro") {
  configs = default_rust_proc_macro_configs
}
