From cc22937c65220955538ee2c31727823367122884 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Thu, 27 Jan 2022 16:51:44 -0500 Subject: [PATCH] better C++ enum handling --- java_tools/enum2string.jar | Bin 93129 -> 93531 bytes .../main/java/com/rusefi/EnumToString.java | 15 +++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/java_tools/enum2string.jar b/java_tools/enum2string.jar index 0b872b593217564df4e8dec2759455fe1adeffcf..cd552425b369e83ebc652cb7145d171c72ca9c69 100644 GIT binary patch delta 21749 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 delta 21384 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 diff --git a/java_tools/enum_to_string/src/main/java/com/rusefi/EnumToString.java b/java_tools/enum_to_string/src/main/java/com/rusefi/EnumToString.java index f6d6ab9e9e..be4226f685 100644 --- a/java_tools/enum_to_string/src/main/java/com/rusefi/EnumToString.java +++ b/java_tools/enum_to_string/src/main/java/com/rusefi/EnumToString.java @@ -17,7 +17,10 @@ public class EnumToString { private final StringBuilder cppFileContent = new StringBuilder(); private final StringBuilder includesSection = new StringBuilder(); - private final static StringBuilder bothFilesHeader = new StringBuilder("// by enum2string.jar tool " + + /** + * same header for .cpp and .h + */ + private final static StringBuilder commonFilesHeader = new StringBuilder("// by enum2string.jar tool " + "on " + new Date() + "\n" + "// see also gen_config_and_enums.bat\n" + "\n" + @@ -43,7 +46,7 @@ public class EnumToString { state.outputData(enumsReader); - state.cppFileContent.insert(0, bothFilesHeader.toString()); + state.cppFileContent.insert(0, commonFilesHeader.toString()); state.cppFileContent.insert(0, state.includesSection); headerFileContent.insert(0, state.includesSection); @@ -51,7 +54,7 @@ public class EnumToString { SystemOut.println("includesSection:\n" + state.includesSection + "end of includesSection\n"); state.cppFileContent.insert(0, "#include \"global.h\"\n"); - headerFileContent.insert(0, bothFilesHeader.toString()); + headerFileContent.insert(0, commonFilesHeader); new File(outputPath).mkdirs(); state.writeCppAndHeaderFiles(outputPath + File.separator + "auto_generated_" + @@ -74,7 +77,7 @@ public class EnumToString { File f = new File(inputPath + File.separator + headerInputFileName); SystemOut.println("Reading enums from " + headerInputFileName); - bothFilesHeader.insert(0, "// " + LazyFile.LAZY_FILE_TAG + " from " + f.getName() + " "); + commonFilesHeader.insert(0, "// " + LazyFile.LAZY_FILE_TAG + " from " + f.getName() + " "); includesSection.append("#include \"" + f.getName() + "\"\n"); enumsReader.read(new FileReader(f)); @@ -87,7 +90,11 @@ public class EnumToString { String enumName = e.getKey(); EnumsReader.EnumState enumState = e.getValue(); cppFileContent.append(makeCode(enumName, enumState)); + if (enumState.isEnumClass) + headerFileContent.append("#if __cplusplus\n"); headerFileContent.append(getMethodSignature(enumName) + ";\n"); + if (enumState.isEnumClass) + headerFileContent.append("#endif //__cplusplus\n"); } SystemOut.println("EnumToString: " + headerFileContent.length() + " bytes of content\n"); return this;