{"id":48,"date":"2010-04-28T23:29:07","date_gmt":"2010-04-28T21:29:07","guid":{"rendered":"http:\/\/arnorehn.de\/cgi-bin\/weblog_basic\/index.php?p=48"},"modified":"2010-04-28T23:29:07","modified_gmt":"2010-04-28T21:29:07","slug":"qyotoassemblygen-progress","status":"publish","type":"post","link":"https:\/\/www.arnorehn.de\/blog\/2010\/04\/28\/qyotoassemblygen-progress\/","title":{"rendered":"qyotoassemblygen progress"},"content":{"rendered":"<p>Some time back I have started a tool called qyotoassemblygen [0], which will hopefully ease the generation of .NET\/Mono bindings based on SMOKE libraries. It basically introspects a SMOKE library and generates a System.CodeDom tree from that information. The CodeDom can then be used to generate C# code and\/or compile an assembly.<br \/>\nAlthough some parts were rather difficult and had to be rewritten again and again (like checking whether a method has to be marked &#8220;override&#8221; or &#8220;virtual&#8221;), I can now announce that it&#8221;s quite stable and generates all of the Qt assemblies just fine :). I&#8221;m currently working on getting the KDE assemblies to build, which is really just a matter of sorting out *Private classes.<\/p>\n<p>By using plugins the tool is not bound to Qt-based bindings, so we could as well generate assemblies for other toolkits, like Wt (for which there is already a smoke lib, thanks to Richard :)). Plugins will also make it easy to add syntactic sugar like event support for Qyoto (which I hope I can implement for KDE SC 4.5).<\/p>\n<p>If everything works as expected, we can hopefully drop kalyptus completely in the next release and reduce our maintenance cost considerably \ud83d\ude42<\/p>\n<p>[0] http:\/\/websvn.kde.org\/trunk\/playground\/bindings\/qyotoassemblygen<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some time back I have started a tool called qyotoassemblygen [0], which will hopefully ease the generation of .NET\/Mono bindings based on SMOKE libraries. It basically introspects a SMOKE library and generates a System.CodeDom tree from that information. The CodeDom can then be used to generate C# code and\/or compile an assembly. Although some parts [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[9,10,13,14],"class_list":["post-48","post","type-post","status-publish","format-standard","hentry","category-kde","tag-bindings","tag-c","tag-qyotoassemblygen","tag-smoke"],"_links":{"self":[{"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/posts\/48","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/comments?post=48"}],"version-history":[{"count":0,"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/posts\/48\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/media?parent=48"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/categories?post=48"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arnorehn.de\/blog\/wp-json\/wp\/v2\/tags?post=48"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}