sábado, 18 de agosto de 2007

Twelfth Status Report

This week I mostly did small improvements and fixed bugs, among the more notable I made certain paths to be serialized as relative to the project, attempt to always parse functions from it's prototype unless it does not have one, added commands to context menus, hide resources node in the project pad, added custom icons to stock icons so they can be used in the completion widget, made it possible for C/C++ projects to depend on other C/C++ projects that compile into a shared library, keep a project's internal pkg-config package updated and implemented IDeployable.

Other than that I added project templates for console project, static library project and shared library project for both C and C++.

sábado, 11 de agosto de 2007

Building libbanshee with MonoDevelop

Today I checked out Banshee and made a MonoDevelop C Project for libbanshee using CBinding these are the current requirements to do this:
  • You must have a recent MonoDevelop svn checkout (There are breaking changes that did not make it into MD 0.15, specifically an updated addin extension tree) so the checkout needs to be quite recent.
  • The banshee source which comes with an MD solution, I checked out todays svn, I'm not sure if the packaged tarball includes this.
  • Download this file: http://groups.google.com/group/mono-soc-2007/web/libbanshee.tar.gz
In the tar file you will find the following files:
  • CBinding.dll: This is the C/C++ AddIn I have been working on, all you have to do is copy it to (assumming you use make run to run your svn MD) {MD_ROOT}/build/AddIns/BackendBindings. Alternatively you can follow these instructions if you want to keep up with CBinding development from svn: http://mdmagsoc.blogspot.com/2007/07/testing-out-current-work.html.
  • libbanshee.mdp: This is the MonoDevelop project for libbanshee, just copy it to {BANSHEE_ROOT}/libbanshee
  • libbanshee.diff (optional): This is a patch that adds libbanshee.mdp to the banshee MD solution.
And thats it, this should work, but I don't guarantee anything. Please let me know if anything went wrong when you did this.

It should be noted that I'm not at all familiar with the banshee build process, so I just made the output of libbanshee go to the build folder in the banshee root folder, I'm not sure if this is correct behavior.

sábado, 4 de agosto de 2007

Tenth Status Report

I spent most of this week learning ANTLR which is a parser generator, my hope is that I would be able to use this tool to generate a simple parser to keep track of variables, their, type, scope and name. Apparently there is no easy way to instruct the parser to filter out everything else except what I'm interested in, so doing this won't be so simple, and I didn't get much real work done in this area (except learn a bunch of ANTLR stuff).

I also implemented :: completion which means I only have left to implement . and -> completion but for these I do need the parser. Here is a screencast to show the completion work that is done by now:
http://mono-soc-2007.googlegroups.com/web/completion.ogv?gda=VF70_T8AAADG9NcZGhrdQoBkIcN6-CI_4f_VQDJMRqqnHJzwfvt8rWG1qiJ7UbTIup-M2XPURDRqGo9gGxnkqAMosQl8q6_d

While watching the screencast I noticed there was some inconsistencies between the icons used in the completion widget and those used in the class pad, I will fix this shortly.

So I think CBinding is pretty much complete for now, I think now it is more important to test, bugfix and polish current work, so unless something comes up I will probably spend the rest of soc doing this and working on the parser.