sábado, 2 de junio de 2007

First Status Report

* Accomplished this week:
Well, I have been working since interim period so its pretty much what
I have done, though not so much because I have had classes.

First I created the basic C/C++ addin and added functionality for for
compiling C projects using gcc and C++ with g++.

Then created the code generation panel where the following options are
available:
-Warning level: this can be set to "no warnings", "normal" and "all".
-Optimization level: can be set to 0-3.
-Target: "Executable", "Static Library" or "Shared Object".
-Extra Compiler arguments: You can add whatever options you want to
send to the compiler (ie -DDEBUG to define DEBUG, etc.)
-Libraries: Here you can select what libraries to link with your
project.
-Include: Add extra folders to search for #include files.
-Library: Add extra folders to search for libraries.

I also created a dialog to select what compiler to use, by default the
addin uses gcc for C and g++ for C++, but you can create a class that
implements ICompiler and register it in the MonoDevelop Addin Tree
(specifically, in "/CBinding/Compilers"). This dialog loads all
registered classes and allows you to select which one to use for your
project.

And currently I'm working on creating a dialog to select what pkg-
config packages to include in your project, this works very similar to
references in .NET languages. In the project solution pad I removed
the "References" node and created a "Packages" node which has an "Edit
packages..." command in it's context menu which launches the Edit
packages dialog where you will be able to add/remove packages from
your project.

* Plans for the upcoming week:
Since I'm getting closer to finals I have a lot of final projects for
school to complete and I have to get ready for finals, so I don't
think I will be working much until around the 16 of June when I have
my last exam. I still hope to be able to get some work done anyway.

This is why I have been working since the interim period, to make up
for the time I won't have in the next 2 weeks.

When I get back to work I will be focusing on completing the edit
packages dialog, which still has a long way to go, and fixing some
small details that were bothering me.

* Challenges or problems that I might be facing:
To add the packages node I created a NodeBuilderExtension that extends
the Project node and adds the packages node, the problem here is that
it adds the node at the end of the list of nodes, even after the
project source files which is just not nice, I didn't find any easy
way to fix this and there probably is one.

Also for some reason the activalanguage condition is not working for
the NodeBuilderExtensions, if I put the condition the condition is
never true so for now I just commented out the condition so I
recommend you don't use this addin in your stable MonoDevelop just
yet, since it will remove the References node and add the Packages
node even if its a C# project.

Whats very weird about this problem is that the exact same condition
does indeed work for the Dialogs... I don't get it, though I didn't
dig much into the problem.

Another challenge I will have is filtering the pkg-config packages so
that only suited packages appear in the edit packages dialog
selection, I'm not quite sure how I'm going to do this yet.

This probably won't be a challenge but since I have never done it
before I'm adding it here anyway, I will have to get the value for the
pkg-config env variable to search all the paths there for packages, I
have no idea how to get an env variable's value... but if it's simple
like I think it is, some quick googling should solve this.

* Interesting resources that helped you during the week.
http://www.monodevelop.com/Articles
Thats full with sweet information I need oh so often, though I tend to
miss key articles I need. Thanks go to Michael for having the patience
to point them to me when they are right in front of my nose, lol.
And also thanks to Michael for helping me in many ways, many times.

And thats pretty much it for my report, I'd like to finish by assuring
you guys that my next report will be in on time, and by wishing you
all some Happy Hacking!

No hay comentarios: