pip_cmg include fix

This commit is contained in:
2022-05-15 17:56:52 +03:00
parent a502182eba
commit ffa25c18f0

View File

@@ -419,18 +419,22 @@ void makeGetterValue(PIFile & f, const PICodeParser::Entity * e) {
}
void writeModel(PICodeParser & parser, PICLI & cli, const PIString out, bool meta, bool enums, bool streams, bool texts, bool getters) {
void writeModel(PICodeParser & parser, PICLI & cli, const PIString out, const PIStringList & files, bool meta, bool enums, bool streams, bool texts, bool getters) {
PIString defname = "CCM_" + PIString::fromNumber(out.hash()) + "_H";
PISet<PIString> inc_files;
piForeachC (PICodeParser::Entity * e, parser.entities)
if (e->name.find("::") < 0 && !e->name.startsWith("_PI"))
inc_files << e->file;
PIString inc_string;
PIVector<PIString> incf = inc_files.toVector();
for (auto & f: files) incf << f;
PIString inc_string;
piForeachC (PIString & i, incf) {
if ((i != parser.mainFile()) && (streams || texts || getters))
inc_string << "\n#include \"" << i << "\"";
}
//piCout << parser.mainFile() << streams << texts << getters;
//piCout << incf;
//piCout << inc_string;
PIFile f(out + ".cpp");
f.clear();
@@ -562,7 +566,8 @@ int main(int argc, char * argv[]) {
piCout << Cyan << Bold << "Parsing done";
piCout << Cyan << Bold << "Writing code model ...";
bool all = cli.hasArgument("All");
writeModel(parser, cli, cli.argumentValue("output"), cli.hasArgument("Metainfo") || all,
writeModel(parser, cli, cli.argumentValue("output"), files,
cli.hasArgument("Metainfo") || all,
cli.hasArgument("Enum") || all,
cli.hasArgument("Stream") || all,
cli.hasArgument("Text") || all,