KDE 4.6 Beta1 tarballs (4.5.80) uploaded

Alexander Neundorf neundorf at kde.org
Mon Nov 22 21:23:17 CET 2010


On Monday 22 November 2010, Kevin Kofler wrote:
> On Friday 19 November 2010, Dirk Mueller wrote:
> > Please let me know of urgent fixes/compile issues in those tar balls.
>
> Various pieces are missing for various reasons:
>
> * The Python script engine is not being built in kdebase-workspace. We need
> commit 1199366 merged into the tag. (Commit 1199438 is also needed, to fix
> a syntax error in the Python code, but that one has already been applied to
> the tag.)
>
> * The Marble wallpaper support in kdeplasma-addons doesn't get built
> because kdeedu doesn't install FindMarble.cmake. This is fixed by revision
> 1198993.
>
> * kdebindings doesn't build Okular bindings because FindOkular.cmake was
> removed by http://websvn.kde.org/?view=revision&revision=1179984
> I see how OkularConfig.cmake is the right this to use internally, but IMHO
> there should still be a FindOkular.cmake installed, shouldn't there? 

No, there shouldn't.
The purpose of a FindFoo.cmake file is to help with determining whether Foo is 
installed or not.
It doesn't make sense that package Foo installs FindFoo.cmake along with its 
other files. Because then, if Foo is not installed, FindFoo.cmake, which 
should tell you that it's not installed, is not installed, so you'll get a 
cmake error that it couldn't find some file.
Also, if Foo would install FindFoo.cmake, the point of FindFoo.cmake would be 
void, since finding FindFoo.cmake basically means that Foo has been found.

Nothing new is broken if package Foo installed FindFoo.cmake before and 
doesn't install it anymore. It didn't handle the case that Foo was not 
installed properly before, and it still doesn't handle it properly if 
FindFoo.cmake is not installed anymore.

So, either a package which uses Foo has its own FindFoo.cmake (or cmake has a 
FindFoo.cmake) or a FindFoo.cmake is installed with kdelibs (e.g. 
FindKDE4.cmake comes with cmake, and is not installed with kdelibs).

What a package can do is to install a FooConfig.cmake into a cmake-specific 
directory (see the find_package() documentation in the cmake man page), e.g. 
PREFIX/lib/cmake/<package>/
This is done with OkularConfig.cmake:
http://websvn.kde.org/trunk/KDE/kdegraphics/okular/CMakeLists.txt?r1=1179984&r2=1179983&pathrev=1179984

When you now do a 
find_package(Okular),
cmake searches in a set of directories for a FooConfig.cmake, and should find 
and load it.

Does that make it more clear ?

Alex


More information about the release-team mailing list