Gate codegen metadata output under metadata feature.

This commit is contained in:
Stephen Chung
2021-03-26 10:59:34 +08:00
parent 8ea218f907
commit c443c3bb48
7 changed files with 189 additions and 92 deletions

View File

@@ -330,11 +330,19 @@ pub fn set_exported_fn(args: proc_macro::TokenStream) -> proc_macro::TokenStream
match crate::register::parse_register_macro(args) {
Ok((module_expr, export_name, rust_mod_path)) => {
let gen_mod_path = crate::register::generated_module_path(&rust_mod_path);
#[cfg(feature = "metadata")]
let param_names = quote! {
Some(#gen_mod_path::Token::PARAM_NAMES)
};
#[cfg(not(feature = "metadata"))]
let param_names = quote! { None };
proc_macro::TokenStream::from(quote! {
#module_expr.set_fn(#export_name, FnNamespace::Internal, FnAccess::Public,
Some(#gen_mod_path::Token::PARAM_NAMES),
&#gen_mod_path::Token::param_types(),
#gen_mod_path::Token().into());
#module_expr.set_plugin_fn(#export_name, FnNamespace::Internal, FnAccess::Public,
#param_names,
&#gen_mod_path::Token::param_types(),
#gen_mod_path::Token());
})
}
Err(e) => e.to_compile_error().into(),
@@ -371,11 +379,19 @@ pub fn set_exported_global_fn(args: proc_macro::TokenStream) -> proc_macro::Toke
match crate::register::parse_register_macro(args) {
Ok((module_expr, export_name, rust_mod_path)) => {
let gen_mod_path = crate::register::generated_module_path(&rust_mod_path);
#[cfg(feature = "metadata")]
let param_names = quote! {
Some(#gen_mod_path::Token::PARAM_NAMES)
};
#[cfg(not(feature = "metadata"))]
let param_names = quote! { None };
proc_macro::TokenStream::from(quote! {
#module_expr.set_fn(#export_name, FnNamespace::Global, FnAccess::Public,
Some(#gen_mod_path::Token::PARAM_NAMES),
&#gen_mod_path::Token::param_types(),
#gen_mod_path::Token().into());
#module_expr.set_plugin_fn(#export_name, FnNamespace::Global, FnAccess::Public,
#param_names,
&#gen_mod_path::Token::param_types(),
#gen_mod_path::Token());
})
}
Err(e) => e.to_compile_error().into(),