[Kde-bindings] building smoke and korundum separately

Arno Rehn arno at arnorehn.de
Mon Mar 23 16:57:31 UTC 2009


On Monday 23 March 2009 11:47:39 Stefano Crocco wrote:
> Alle Sunday 22 March 2009, Arno Rehn ha scritto:
> > On Sunday 22 March 2009 11:06:41 Stefano Crocco wrote:
> > > I was trying to build smoke and korundum separately. The reason to do
> > > this is that I wanted to create kdebindings packages for my
> > > distribution (gentoo) which, at the moment, doesn't have any. Since
> > > gentoo puts each kde application/library into an individual package, I
> > > wanted to do the same with kdebindings. So my idea was: a package for
> > > smoke, a package for korundum, a package for qyoto, and so on.
> > >
> > > I proceeded the following way:
> > > - built smoke (installed in /usr/kde/svn/libs)
> > > - created another build directory, run cmake from it then run ccmake to
> > > only select qtruby and korundum (disabling smoke)
> > > - run make
> > >
> > > As soon as make attempted to link libqtruby.so (or something similar, I
> > > don't remember exactly), I got a smoke-related linking error. So I
> > > tried looking in the makefiles produced by cmake and found out that the
> > > smoke libraries weren't among the ones included in the linking process
> > > (I assume because I explicitly told cmake not to build it). I then
> > > started looking through the options listed by ccmake, including the
> > > advanced ones, and found a CMAKE_MODULE_LINKER_FLAGS and a
> > > CMAKE_SHARED_LINKER_FLAGS entries. Setting both of them to -L
> > > /usr/kde/svn/lib (the directory were smoke is installed) I was able to
> > > compile correctly korundum.
> >
> > When it's just a matter of adding -L /usr/kde/svn/lib, then the correct
> > way to proceed is adding a link_directories( /usr/kde/svn/lib/ ) command
> > to CMakeLists.txt.
> > Ideally one should write FindSmokeQt.cmake, FindSmokeKDE.cmake,
> > FindSmokeQtWebKit.cmake etc. and install them together with the smoke
> > libs. You could then simply find_package (SmokeQt REQUIRED) and
> > everything should be set up correctly. Without that, a hardcoded
> > link_directories command as explained above should be sufficient.
>
> Thanks for your answer. However, given how Gentoo works, what you're
> suggesting would require to create a patch for the CMakeLists.txt file,
> while my solution would simply mean passing a flag to the call to cmake,
> which would be quite easier (and, in my opinion, cleaner). Is there any
> drawback to this approach?
If it links, there's no drawback. But the cleaner solution really is creating 
a patch, since CMAKE_MODULE_LINKER_FLAGS and CMAKE_SHARED_LINKER_FLAGS are not 
to be used directly, afaik. They're set by link_directories and 
target_link_libraries and that's how you should do it. But if it works, I 
don't see a problem here, except for the cleanness of the procedure.

-- 
Arno Rehn
arno at arnorehn.de



More information about the Kde-bindings mailing list