On Tue, March 4, 2014 18:46:53 John Layt wrote: > KImageCache > KSharedPixmapCacheMixin > KLocalImageCacheImplementation > - Looks OK > - KImageCache not exported, but KLocalImageCacheImplementation is, some > CMake magic involved?
No CMake. :) KImageCache depends on KSharedDataCache from KCoreAddons but we didn't want to make a hard dep on KCoreAddons from KGuiAddons. So instead the differences between KImageCache are coded into a class KLocalImageCacheImplementation (which is exported as you noted). The API of KSharedDataCache that is needed is replaced by a template class KSharedPixmapCacheMixin. KImageCache itself then becomes a macro expanding to KSharedPixmapCacheMixin<KSharedDataCache>, which is generated by the compiler and thus doesn't need an export (this despite being an internal class marked as @internal). Doing it this way allows a sort of "weak reference" to KSharedDataCache without having to define KSharedDataCache. It might even be possible to forward-declare KSharedDataCache and use a typedef instead but I didn't even do the porting work here and that didn't occur to me when I was reviewing the patch a few months back. Regards, - Michael Pyne _______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel