reusability of GenericManager

Milian Wolff mail at
Tue Oct 19 00:16:44 UTC 2010

Hey there,

I'm trying to revive QMake support as I have to use that at work. To safe some 
kittens I want to reuse the generic manager which is already possible with the 
IGenericManager export.

This can be used with e.g. this code:

KDevelop::IGenericProjectManager* QMakeProjectManager::genericManager() const
    KDevelop::IGenericProjectManager* manager = KDevelop::ICore::self()-
"org.kdevelop.IGenericProjectManager" );


    return manager;

bool QMakeProjectManager::renameFolder( KDevelop::ProjectFolderItem* 
oldFolder, const KUrl& newFolder )
    return genericManager()->renameFolder( oldFolder, newFolder );

So far so good. But this actually shows the issue I have with this:

I cannot subclass the generic manager. Sure the above works and saves code 
already, but I could save so much more! So I wonder: Could we not export the 
generic manager in a "subclassable" way? This would also solve my "real" 
problem with reusing it:

I cannot create custom Folder/File objects. And since the generic manager has 
no idea of targets/build stuff it will never create ProjectBuildFolderItems for 

If I subclass the manager I could  add something like:

virtual ProjectFolderItem* newFolder(const KUrl& url, ProjectFolderItem* 

and in the QMake overload that and return ProjectBuilderFolderItems on demand.

So the real question of this mail is probably: How can I export something from 
a plugin in a way that I link against it? Andreas, could you maybe help me 
with the CMake magic required?


PS: I personally think this would involve creating and installing a new shared 
library which would be linked into the genericmanager plugin as well. Correct?

Milian Wolff
mail at
-------------- 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: <>

More information about the KDevelop-devel mailing list