mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 10:07:38 -04:00
headergen_v2: only generate GET_VARIANT macro if needed
This is an internal macro which is only used if has_sct() is set by the generator, so don't generate it if we don't need to. Change-Id: I7ad51ad34ecabd833b84a270b5046e77131dcb41
This commit is contained in:
parent
f50455f6a7
commit
af9156406d
1 changed files with 25 additions and 22 deletions
|
@ -1527,28 +1527,31 @@ bool common_generator::generate_macro_header(error_context_t& ectx)
|
|||
ctx.print(fout);
|
||||
fout << "\n";
|
||||
|
||||
/* print GET_VARIANT macro */
|
||||
std::string get_var = macro_name(MN_GET_VARIANT);
|
||||
fout << "/** " << get_var << "\n";
|
||||
fout << " *\n";
|
||||
fout << " * usage: " << get_var << "(register, variant_prefix, variant_postfix)\n";
|
||||
fout << " *\n";
|
||||
fout << " * effect: expands to register variant given as argument\n";
|
||||
fout << " * note: internal usage\n";
|
||||
fout << " * note: register must be fully qualified if indexed\n";
|
||||
fout << " *\n";
|
||||
fout << " * example: " << get_var << "(ICOLL_CTRL, , _SET)\n";
|
||||
fout << " * example: " << get_var << "(ICOLL_ENABLE(3), , _CLR)\n";
|
||||
fout << " */\n";
|
||||
fout << "#define " << get_var << "(name, varp, vars) "
|
||||
<< get_var << "_(" << safe_macro_paste(false, type_xfix(MT_REG_NAME, true))
|
||||
<< "name" << safe_macro_paste(true, type_xfix(MT_REG_NAME, false)) << ", "
|
||||
<< safe_macro_paste(false, type_xfix(MT_REG_INDEX, true))
|
||||
<< "name" << safe_macro_paste(true, type_xfix(MT_REG_INDEX, false)) << ", varp, vars)\n";
|
||||
fout << "#define " << get_var << "_(...) " << get_var << "__(__VA_ARGS__)\n";
|
||||
fout << "#define " << get_var << "__(name, index, varp, vars) "
|
||||
<< "varp##name##vars index\n";
|
||||
fout << "\n";
|
||||
if(has_sct())
|
||||
{
|
||||
/* print GET_VARIANT macro */
|
||||
std::string get_var = macro_name(MN_GET_VARIANT);
|
||||
fout << "/** " << get_var << "\n";
|
||||
fout << " *\n";
|
||||
fout << " * usage: " << get_var << "(register, variant_prefix, variant_postfix)\n";
|
||||
fout << " *\n";
|
||||
fout << " * effect: expands to register variant given as argument\n";
|
||||
fout << " * note: internal usage\n";
|
||||
fout << " * note: register must be fully qualified if indexed\n";
|
||||
fout << " *\n";
|
||||
fout << " * example: " << get_var << "(ICOLL_CTRL, , _SET)\n";
|
||||
fout << " * example: " << get_var << "(ICOLL_ENABLE(3), , _CLR)\n";
|
||||
fout << " */\n";
|
||||
fout << "#define " << get_var << "(name, varp, vars) "
|
||||
<< get_var << "_(" << safe_macro_paste(false, type_xfix(MT_REG_NAME, true))
|
||||
<< "name" << safe_macro_paste(true, type_xfix(MT_REG_NAME, false)) << ", "
|
||||
<< safe_macro_paste(false, type_xfix(MT_REG_INDEX, true))
|
||||
<< "name" << safe_macro_paste(true, type_xfix(MT_REG_INDEX, false)) << ", varp, vars)\n";
|
||||
fout << "#define " << get_var << "_(...) " << get_var << "__(__VA_ARGS__)\n";
|
||||
fout << "#define " << get_var << "__(name, index, varp, vars) "
|
||||
<< "varp##name##vars index\n";
|
||||
fout << "\n";
|
||||
}
|
||||
|
||||
/* print BF_OR macro */
|
||||
std::string bf_or = macro_name(MN_FIELD_OR);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue