[Nepomuk] CMake for Nepomuk in 5.0
Artem Serebriyskiy
v.for.vandal at gmail.com
Fri Sep 2 21:28:23 UTC 2011
Well, as we now have several repositories and libraries, it should be
NepomuCoreConfig.cmake
NepomukUiConfig.cmake
NepomukSomeOtherModule.cmake and so on
and this may result in code like
find_package(NepomukUI) // Implies finding NepomukCore
find_package(
NepomukSomeOtherModule) // Implies finding NepomukCore, but doesn't imply
finding NepomukUI, so we need previous line
Good things is that we can request specific versions for every library( aka
module) and so on. Bad things, as for me, are that when number of modules
more then 3, the code looks dirty - I personally would prefer one
find_package with COMPONENTS in such situation rather then 4 lines with
find_package..
Anyway, currently there are only 2 main modules( aka libraries) so it is not
the case.
CMake scripting is no problem for me, so I think we can/should choose
variant that best fits our needs and offer good interface for the programmes
using Nepomuk, and I will implement it( if necessary, of course).
P.S. If you are concerned about internals of the script, then current draft
implementation just loads Nepomuk<ModuleName>Config.cmake for every
requested component by itself. The question is mainly about interface for
the Nepomuk-using programmers.
P.P.S. Sorry, forget to send to mailing list.
On Sat, Sep 3, 2011 at 12:56 AM, Sebastian Trüg <trueg at kde.org> wrote:
> How about just doing it with a NepomukConfig.cmake and a
> NepomukConfigVersion.cmake. AFAIK that is the simplest solution and does
> not require any fancy script writing.
> I am not sure if it is enough in all situations though...
>
> Examples can be found in sdo, nepomukannotation, scribo, and others, I
> think Akonadi does it, too.
>
> Cheers,
> Sebastian
>
> On 09/02/2011 10:24 PM, Artem Serebriyskiy wrote:
> > Hi.
> >
> > I am trying to provide a replacement for FIndNepomuk.cmake that will
> > work with new Nepomuk layout . And I have a question for desired API of
> > the script. In current draft all modules are treated as components.
> > Examples:
> > 1. find_package(Nepomuk COMPONENTS core ui ) will try to found all
> > required components and will set general variables NEPOMUK_FOUND,
> > _LIBRARIES, _INCLUDE_DIRS and component-specific variables
> > NEPOMUK_${COMPONENT}_FOUND, NEPOMUK_${COMPONENT}_LIBRARY, _INCLUDE_DIRS
> > for each component ( expands to NEPOMUK_CORE_LIBRARY,
> > NEPOMUK_UI_LIBRARY) etc.
> >
> > 2. find_package(Nepomuk) will try to found all available modules of the
> > Nepomuk on the system and for every found module will set variables
> > mentioned above. Global ones are combination of all component-specific,
> > and NEPOMUK_FOUND is set to true if at least any package was discovered.
> >
> > Downside of this solution is that we loose ability to request version
> > for component, so it will require to sync versions at least between main
> > modules.
> >
> > Is this acceptable ?
> > Any comments and suggestions are welcome.
> >
> > --
> > Sincerely yours,
> > Artem Serebriyskiy
>
--
Sincerely yours,
Artem Serebriyskiy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/nepomuk/attachments/20110903/0fb2fedc/attachment.html>
More information about the Nepomuk
mailing list