mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.8 KiB
96 lines
2.8 KiB
using System.Collections.Generic; |
|
using Cxxi.Generators; |
|
using Cxxi.Generators.CLI; |
|
using Cxxi.Passes; |
|
using Cxxi.Types; |
|
|
|
namespace Cxxi.Libraries |
|
{ |
|
class Qt : ILibrary |
|
{ |
|
public void Preprocess(Library lib) |
|
{ |
|
// Qt Base |
|
lib.IgnoreFile("qalgorithms.h"); |
|
lib.IgnoreFile("qarraydata.h"); |
|
lib.IgnoreFile("qatomic.h"); |
|
lib.IgnoreFile("qatomic_x86.h"); |
|
lib.IgnoreFile("qbytearray.h"); |
|
lib.IgnoreFile("qbasicatomic.h"); |
|
lib.IgnoreFile("qflags.h"); |
|
lib.IgnoreFile("qglobal.h"); |
|
lib.IgnoreFile("qstring.h"); |
|
lib.IgnoreFile("qrefcount.h"); |
|
lib.IgnoreFile("qtypeinfo.h"); |
|
lib.IgnoreFile("qtypetraits.h"); |
|
|
|
lib.IgnoreClassWithName("QForeachContainer"); |
|
lib.IgnoreClassWithName("QFlags"); |
|
lib.IgnoreClassWithName("QUrlTwoFlags"); |
|
|
|
lib.SetClassAsValueType("QChar"); |
|
lib.SetClassAsValueType("QPair"); |
|
lib.SetClassAsValueType("QPoint"); |
|
lib.SetClassAsValueType("QPointF"); |
|
} |
|
|
|
public void Postprocess(Library lib) |
|
{ |
|
} |
|
|
|
public void Setup(DriverOptions options) |
|
{ |
|
options.LibraryName = "Qt"; |
|
options.OutputNamespace = "Qt"; |
|
options.OutputDir = @"C:\Users\triton\Development\cxxi\examples\qt\wrappers"; |
|
options.IncludeDirs.Add(@"C:\Qt\Qt5.0.1\5.0.1\msvc2010\include"); |
|
options.GeneratorKind = LanguageGeneratorKind.CPlusPlusCLI; |
|
|
|
SetupHeaders(options.Headers); |
|
} |
|
|
|
public void SetupHeaders(List<string> headers) |
|
{ |
|
var sources = new string[] |
|
{ |
|
"QtCore/QPoint", |
|
"QtCore/QUrl", |
|
}; |
|
|
|
headers.AddRange(sources); |
|
} |
|
|
|
public void SetupPasses(PassBuilder p) |
|
{ |
|
p.RemovePrefix("Q"); |
|
|
|
const RenameTargets renameTargets = RenameTargets.Function |
|
| RenameTargets.Method | RenameTargets.Field; |
|
p.RenameDeclsCase(renameTargets, RenameCasePattern.UpperCamelCase); |
|
|
|
p.FunctionToInstanceMethod(); |
|
p.FunctionToStaticMethod(); |
|
p.CheckDuplicateNames(); |
|
} |
|
|
|
public void GenerateStart(TextTemplate template) |
|
{ |
|
if (template is CLISourcesTemplate) |
|
template.WriteLine("#include \"_Marshal.h\""); |
|
} |
|
|
|
public void GenerateAfterNamespaces(TextTemplate template) |
|
{ |
|
if (template is CLISourcesTemplate) |
|
template.WriteLine("using namespace clix;"); |
|
} |
|
} |
|
|
|
static class Program |
|
{ |
|
public static void Main(string[] args) |
|
{ |
|
Cxxi.Program.Run(new Libraries.Qt()); |
|
} |
|
} |
|
}
|
|
|