diff --git a/utils/code_model_generator/main.cpp b/utils/code_model_generator/main.cpp index 52459a55..d0ee251c 100755 --- a/utils/code_model_generator/main.cpp +++ b/utils/code_model_generator/main.cpp @@ -221,23 +221,27 @@ void writeModel(PICodeParser & parser, const PIString out, bool meta, bool enums ventities << e; } */ - if (meta) { + if (meta || enums) { f << "\n\n// Metainformation\n\n__ClassInfo_" << defname << "_Initializer__::__ClassInfo_" << defname << "_Initializer__() {\n"; f << "\tif (_inited_) return;\n\t_inited_ = true;\n\n"; - //if (!enums) + if (meta) f << "\tClassInfo * ci;\n\tTypeInfo * ni;\n\tFunctionInfo * fi;\n"; - f << "\tEnumInfo * ei;\n"; - f << "\t(*enumsInfo)[\"\"] = new EnumInfo();\n"; - //if (!enums) { + if (enums) { + f << "\tEnumInfo * ei;\n"; + f << "\t(*enumsInfo)[\"\"] = new EnumInfo();\n"; + } + if (meta) { f << "\n\n// Classes\n"; piForeachC (PICodeParser::Entity * e, parser.entities) { if (e->name.startsWith("_PI")) continue; makeClassInfo(f, e); } - //} - f << "\n// Enums\n"; - piForeachC (PICodeParser::Enum & e, parser.enums) - makeEnumInfo(f, &e); + } + if (enums) { + f << "\n// Enums\n"; + piForeachC (PICodeParser::Enum & e, parser.enums) + makeEnumInfo(f, &e); + } f << "}\n"; f << "\n\nbool __ClassInfo_" << defname << "_Initializer__::_inited_ = false;\n"; } @@ -268,7 +272,7 @@ void writeModel(PICodeParser & parser, const PIString out, bool meta, bool enums const PIVariant & arg1 = PIVariant(), const PIVariant & arg2 = PIVariant(), const PIVariant & arg3 = PIVariant());"; } */ - if (meta) { + if (meta || enums) { f << "\n\n// Metainformation\n\nclass __ClassInfo_" << defname << "_Initializer__ {\n"; f << "public:\n\t__ClassInfo_" << defname << "_Initializer__();\n\tstatic bool _inited_;\n};\n"; f << "\nstatic __ClassInfo_" << defname << "_Initializer__ __classinfo_" << defname.toLowerCase() << "_initializer__;\n";