From ffa25c18f0fde24d5fb77e7ad40c4c9317202f04 Mon Sep 17 00:00:00 2001 From: peri4 Date: Sun, 15 May 2022 17:56:52 +0300 Subject: [PATCH] pip_cmg include fix --- utils/code_model_generator/main.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/utils/code_model_generator/main.cpp b/utils/code_model_generator/main.cpp index 7adbdf41..718c249b 100755 --- a/utils/code_model_generator/main.cpp +++ b/utils/code_model_generator/main.cpp @@ -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 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 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,11 +566,12 @@ 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, - cli.hasArgument("Enum") || all, - cli.hasArgument("Stream") || all, - cli.hasArgument("Text") || all, - cli.hasArgument("Getter") || all); + writeModel(parser, cli, cli.argumentValue("output"), files, + cli.hasArgument("Metainfo") || all, + cli.hasArgument("Enum") || all, + cli.hasArgument("Stream") || all, + cli.hasArgument("Text") || all, + cli.hasArgument("Getter") || all); piCout << Cyan << Bold << "Writing done"; if (cli.hasArgument("print") || cli.hasArgument("Print")) { bool womain = cli.hasArgument("print");