[PATCH] kcmoduleinfo [WAS] Plugin linking problem

Andreas Pakulat apaku at gmx.de
Thu Aug 9 22:43:02 BST 2007


On 09.08.07 23:36:25, Rafael Fernández López wrote:
> The main problem was here (at kcmoduleinfo.cpp):
> 
> -   if( !lib.startsWith( QLatin1String( "kcm_" ) ) )
> -     lib = QLatin1String( "kcm_" ) + lib;
> 
> When it tries to load the KCM factory from the library it will fail, because
> if the library is " foo.so", it will try to load from "kcm_foo.so", what
> won't find.
> 
> For that reason I'm removing that as well as this change on the same file:
> 
> -  handle = tmp.isValid() ? tmp.toString() :
> lib.right( lib.length() - 4 ); // lib without kcm_ prefix
> +  handle = tmp.isValid() ? tmp.toString() : lib;
> 
> This way what I've been working on is adapting all *.desktop files that had
> X-KDE-Library variable without kcm_ on the beginning, and of course, fixing
> some .cpp files that hadn't X-KDE-FactoryName on their .desktop files
> (because there X-KDE-Library was taken), and as far as it was modified
> adding "kcm_", it was needed to add "kcm_" on the
> K_EXPORT_COMPONENT_FACTORY.
> 
> Everything on kdebase/kdelibs/kdepimlibs (I have checked all I think) works.
> I have to fix the rest of modules. kdevplatform and kdevelop were
> contributed by apaku, and I just need to search for KCModule on the rest of
> *.desktop files on the rest of modules (I don't think they will be too
> much).

Even though the main purpose for this change seems to be going away
(looks like Kate will drop KPluginSelector again), I still think it
should be applied because it makes it possible to "transport" a kcm in
any kind of plugin-like-library and doesn't force specific names on the
developer for that.

Andreas

-- 
Beware of low-flying butterflies.




More information about the kde-core-devel mailing list