A few questions about project manager

Milian Wolff mail at milianw.de
Thu Mar 29 17:50:41 UTC 2012

On Friday 23 March 2012 12:41:03 Alexandre Courbot wrote:
> Hi KDevers,
> I finally found some time recently to start working on that Linux
> kernel project manager plugin (shamelessly inspired by the custom
> build manager) I talked about some months ago, and things are going
> well so far - to the point I am actually using it at work:
> https://github.com/Gnurou/kdev-kernel
> With the right set of files to parse, right definitions and right
> include paths, KDevelop is actually doing wonders on kernel code. It
> is by far the most comfy kernel dev environment I have been using so
> far. There are a few things to improve with the parser and
> make-resolver and I hope to address them as well - unfortunately the
> latest patch of mine seems to have introduced issues and needed to be
> reverted. :/
> Anyway, things are working but it is still hacky and even after
> looking at the custom build plugin and project manager interfaces I
> have a few darks corners for which I would be grateful to receive some
> guidance. In particular:
> * I need to reparse the whole project whenever the its configuration
> changes because some include directories may have added/removed. How
> can I achieve that? Right now the parsing of the kernel configuration
> is done by and overload of the import() method of
> AbstractFileManagerPlugin, which is definitely not the right place.
> More generally, how can I trigger a reparsing the whole project or
> some of its files?

You can connect to the KDirWatch returned by projectWatcher. When it emits 
dirty() for your Makefile, trigger a reload?

Also, you should try to cleanup the code such that it does not call 
projectClosing(project); in import() - that looks hackish/wrong. instead, 
reload the current project such that it removes obsolete files and adds new 
stuff, but keeps previously added things that are still valid. somewhat more 
complicated, but much better I think. (project state is kept that way e.g.)

> * Until recently, my project configuration dialog had two panes: the
> one I wrote, and the one for make that allowed to set things like the
> number of parallel processes for compilation. However, the make pane
> is gone when I compile against the latest KDevelop git. Any idea about
> how I can get it back?

add org.kdevelop.IMakeBuilder to X-KDevelop-IRequired in your .desktop file - 
if that does not work, ping me and I'll fix it.

> More questions will probably follow as things progress. :) But
> considering the low amount of effort I invested so far in this plugin,
> the returns in term of usability are already huge. KDevelop rocks.

Cool :]

Milian Wolff
mail at milianw.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20120329/f12ecd90/attachment.sig>

More information about the KDevelop-devel mailing list