Browse Source

Added better support for generating global/namespace functions.

pull/1/head
triton 12 years ago
parent
commit
0c22de2949
  1. 39
      src/Generator/Generators/CSharp/CSharpTextTemplate.cs

39
src/Generator/Generators/CSharp/CSharpTextTemplate.cs

@ -199,13 +199,33 @@ namespace CppSharp.Generators.CSharp
if (context.HasFunctions) if (context.HasFunctions)
{ {
NewLineIfNeeded(); NewLineIfNeeded();
WriteLine("public partial class {0}{1}", SafeIdentifier(Options.LibraryName), WriteLine("public partial class {0}{1}", SafeIdentifier(Options.OutputNamespace),
TranslationUnit.FileNameWithoutExtension); TranslationUnit.FileNameWithoutExtension);
WriteStartBraceIndent(); WriteStartBraceIndent();
// Generate all the function declarations. GenerateClassInternalHead();
WriteStartBraceIndent();
// Generate all the internal function declarations.
foreach (var function in context.Functions) foreach (var function in context.Functions)
{
if (function.Ignore) continue;
NewLineIfNeeded();
GenerateInternalFunction(function);
NeedNewLine();
}
WriteCloseBraceIndent();
foreach (var function in context.Functions)
{
if (function.Ignore) continue;
NewLineIfNeeded();
GenerateFunction(function); GenerateFunction(function);
NeedNewLine();
}
WriteCloseBraceIndent(); WriteCloseBraceIndent();
} }
@ -911,6 +931,21 @@ namespace CppSharp.Generators.CSharp
#region Methods / Functions #region Methods / Functions
public void GenerateFunction(Function function)
{
GenerateDeclarationCommon(function);
var functionName = GetFunctionIdentifier(function);
Write("public static {0} {1}(", function.ReturnType, functionName);
GenerateMethodParameters(function);
WriteLine(")");
WriteStartBraceIndent();
GenerateInternalFunctionCall(function);
WriteCloseBraceIndent();
}
public void GenerateMethod(Method method, Class @class) public void GenerateMethod(Method method, Class @class)
{ {
GenerateDeclarationCommon(method); GenerateDeclarationCommon(method);

Loading…
Cancel
Save