From 12c267d9c44b90521e419c52a3ee29297da70648 Mon Sep 17 00:00:00 2001 From: zylalx1 Date: Fri, 8 Dec 2023 03:58:10 +0800 Subject: [PATCH] Fixed a bug causing the header file to be included twice when Options.GenerateName is not null (#1803) --- src/Generator/Generators/C/CppHeaders.cs | 4 +++- src/Generator/Generators/C/CppSources.cs | 3 ++- src/Generator/Generators/CLI/CLIHeaders.cs | 4 +++- src/Generator/Generators/CLI/CLISources.cs | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Generator/Generators/C/CppHeaders.cs b/src/Generator/Generators/C/CppHeaders.cs index eb87f4fd88..b39d6877d2 100644 --- a/src/Generator/Generators/C/CppHeaders.cs +++ b/src/Generator/Generators/C/CppHeaders.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using CppSharp.AST; using CppSharp.AST.Extensions; @@ -87,7 +88,8 @@ public void GenerateIncludeForwardRefs(TranslationUnit unit) if (typeRef.Include.TranslationUnit == unit) continue; - if (typeRef.Include.File == unit.FileName) + var filename = Context.Options.GenerateName != null ? $"{Context.Options.GenerateName(TranslationUnit)}{Path.GetExtension(TranslationUnit.FileName)}" : TranslationUnit.FileName; + if (typeRef.Include.File == filename) continue; var include = typeRef.Include; diff --git a/src/Generator/Generators/C/CppSources.cs b/src/Generator/Generators/C/CppSources.cs index a8e7a013b6..061809b4ca 100644 --- a/src/Generator/Generators/C/CppSources.cs +++ b/src/Generator/Generators/C/CppSources.cs @@ -64,7 +64,8 @@ public virtual void GenerateForwardReferenceHeaders(TranslationUnit unit) foreach (var typeRef in typeReferenceCollector.TypeReferences) { - if (typeRef.Include.File == unit.FileName) + var filename = Context.Options.GenerateName != null ? $"{Context.Options.GenerateName(TranslationUnit)}{Path.GetExtension(TranslationUnit.FileName)}" : TranslationUnit.FileName; + if (typeRef.Include.File == filename) continue; var include = typeRef.Include; diff --git a/src/Generator/Generators/CLI/CLIHeaders.cs b/src/Generator/Generators/CLI/CLIHeaders.cs index a143cf4ded..900e2a8a5e 100644 --- a/src/Generator/Generators/CLI/CLIHeaders.cs +++ b/src/Generator/Generators/CLI/CLIHeaders.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using CppSharp.AST; using CppSharp.AST.Extensions; @@ -61,7 +62,8 @@ public void GenerateIncludeForwardRefs() if (typeRef.Include.TranslationUnit == TranslationUnit) continue; - if (typeRef.Include.File == TranslationUnit.FileName) + var filename = Context.Options.GenerateName != null ? $"{Context.Options.GenerateName(TranslationUnit)}{Path.GetExtension(TranslationUnit.FileName)}" : TranslationUnit.FileName; + if (typeRef.Include.File == filename) continue; var include = typeRef.Include; diff --git a/src/Generator/Generators/CLI/CLISources.cs b/src/Generator/Generators/CLI/CLISources.cs index 0a88826286..3a1b692bc3 100644 --- a/src/Generator/Generators/CLI/CLISources.cs +++ b/src/Generator/Generators/CLI/CLISources.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.IO; using System.Linq; using CppSharp.AST; using CppSharp.AST.Extensions; @@ -61,7 +62,8 @@ public void GenerateForwardReferenceHeaders() foreach (var typeRef in typeReferenceCollector.TypeReferences) { - if (typeRef.Include.File == TranslationUnit.FileName) + var filename = Context.Options.GenerateName != null ? $"{Context.Options.GenerateName(TranslationUnit)}{Path.GetExtension(TranslationUnit.FileName)}" : TranslationUnit.FileName; + if (typeRef.Include.File == filename) continue; var include = typeRef.Include;