diff --git a/src/Generator/Generators/CLI/CLITextTemplate.cs b/src/Generator/Generators/CLI/CLITextTemplate.cs index 3793713c..b0ce8501 100644 --- a/src/Generator/Generators/CLI/CLITextTemplate.cs +++ b/src/Generator/Generators/CLI/CLITextTemplate.cs @@ -81,9 +81,15 @@ namespace CppSharp.Generators.CLI public string QualifiedIdentifier(Declaration decl) { + var ids = new List(); + if (Options.GenerateLibraryNamespace) - return string.Format("{0}::{1}", Options.OutputNamespace, decl.QualifiedName); - return string.Format("{0}", decl.QualifiedName); + ids.Add(Options.OutputNamespace); + + if (!string.IsNullOrWhiteSpace(decl.QualifiedName)) + ids.Add(decl.QualifiedName); + + return string.Join("::", ids); } public string GetMethodName(Method method) diff --git a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs index 91034421..66dbb933 100644 --- a/src/Generator/Generators/CSharp/CSharpTextTemplate.cs +++ b/src/Generator/Generators/CSharp/CSharpTextTemplate.cs @@ -231,7 +231,7 @@ namespace CppSharp.Generators.CSharp if (context.HasFunctions) { PushBlock(CSharpBlockKind.Functions); - WriteLine("public unsafe partial class {0}{1}", Options.OutputNamespace, + WriteLine("public unsafe partial class {0}", TranslationUnit.FileNameWithoutExtension); WriteStartBraceIndent(); diff --git a/tests/Basic/Basic.Tests.cs b/tests/Basic/Basic.Tests.cs index d4831120..82a1f43b 100644 --- a/tests/Basic/Basic.Tests.cs +++ b/tests/Basic/Basic.Tests.cs @@ -234,5 +234,12 @@ public class BasicTests : GeneratorTestFixture Assert.AreEqual(2, (int)@class); Assert.AreEqual(3, (short)@class); } + + [Test] + public void TestFunctions() + { + var ret = Basic.basic.Function(); + Assert.That(ret, Is.EqualTo(5)); + } } \ No newline at end of file diff --git a/tests/Basic/Basic.h b/tests/Basic/Basic.h index 5888b009..0381abff 100644 --- a/tests/Basic/Basic.h +++ b/tests/Basic/Basic.h @@ -334,3 +334,9 @@ public: operator int() { return 2; } operator short() { return 3; } }; + +// Tests global static function generation +DLL_API int Function() +{ + return 5; +}