[Kde-bindings] building smoke and korundum separately

Arno Rehn arno at arnorehn.de
Sun Mar 22 10:20:33 UTC 2009


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.

-- 
Arno Rehn
arno at arnorehn.de



More information about the Kde-bindings mailing list