31 August, 2011

Desktop Summit 2011: happy and proud.

I know that it has been two weeks since the Desktop Summit 2011 Berlin came to an end, but I really wanted to write this post.

It is my desire to express loudly and publicly how happy and proud I am. Happy because everything worked better than good, because being a member of the organization has been one of the most gratifying (and also exhausting :-)) experiences this last year. As the volunteering coordinator, I could not be prouder of all the volunteers. You simply did a great job and made things happen. Thanks to the core team for being such a great one, to all the volunteers, also to all of you who volunteered at the last minute, and to all of the attendees for attending and for their understanding when things did not work right out of the box.

Working together with the KDE and GNOME community was a fantastic experience where I got to know lots of interesting people who I hope I will keep in touch with. I will miss all the KDE guys next year at GUADEC! 

See you hopefully soon at any geeky conference!

05 August, 2011

Autotools Project Manager, part 2: The Plugin.

During the last past weeks, as I already announced and as part of my trainee program at Openismus GmbH, I have been working on a plugin for autotools support to be used with Qt Creator. The project is still in an early state of development, but already offers some nice features and is ready for its first release.

What can the plugin do?
  • Load an autotools project and work with it in QTC.
  • Syntax highlighting for Makefile.am files.
  • Automatic project tree update if the Makefile.am or configure.ac file is changed.
  • Configuration of build steps (autogen, autoreconf, make and configure).
  • Build and run an autotools project from within QTC.
  • Automatic code completion.
Some ideas for the future:
  • Add syntax highlighting for the configure.ac file.
  • Detect whether autogen.sh runs configure, and allow the user to configure that, to avoid a second configure run.
  • Improve the parser. Autotools can generate several/different types of binares, libraries or other kind of targets. The current parser, checks for bin_PROGRAM binaries. If the output produces one of them, the parsing will be successful, if there are more, the parsing will not be successful. This should be changed to a more *Anjuta like* Makefile.am parsing style, which takes into account the existence of multiple outputs among other complex things. In the meantime, and as a suggestion of the Qt Creator's developers, I am using a ProjectExplorer::CustomExecutableRunConfiguration, which allows the user to choose which executable he/she wants to run, in case there is any.
How to use the plugin:
  • Download the project from gitorious.
  • Follow the README file for installation instructions.
  • See that the plugin is recognized and loaded by Qt-Creator, by selecting Help -> About Plugins in QTC. The AutotoolsProjectManager plugin should be listed as part of the Build System plugins.
  • Open an autotools project in Qt-Creator, using File -> Open File or Project... In the prompted dialog-box, select the Makefile.am from your project. This is the only way a user can use the autotools plugin. Thus, a Makefile.am must always exist before hand. 
  • The first time an autotools project is opened with Qt-Creator, a dialog-box pops up and the user will be able to select the build directory. Qt-Creator then puts a .user file in the directory so it doesn't need to ask again. Only in-source building is working right now.
  • After clicking on the Finish button of the Autotools Wizard, Qt-Creator should show the project's tree structure at the left side hand. The root node should show the project name and all project files should be listed and editable from there. 
  • At this point, building and running the application should work. This will execute autogen.sh or autoreconf, configure and make. The first time, when running the application, a dialog will ask you to choose the executable's location, then, QTC will remember it for the following times. Ideally, this will be changed in the future, to be done in a more automated way.
  • When selecting Projects->Build Settings from Qt-Creator on the left side bar, notice the typical autotools build steps (autogen.sh/autoreconf, configure, make). You may configure some parameters such as adding new configure parameters or changing the build directory (though, as I mentiond before, only in-source building is working at the moment).
As always, all comments and feedback is very welcome. Have fun!