changes to how kdepimlibs and kdebase/workspace are installed and found

Brad King brad.king at kitware.com
Thu Dec 18 15:11:32 CET 2008


Alexander Neundorf wrote:
> On Tuesday 09 December 2008, Brad King wrote:
>> Brad King wrote:
>>> Brad King wrote:
>>>> Perhaps you can avoid this by using PATH_SUFFIXES on the inner
>>>> find_package call in your find-modules:
>>>>
>>>>    find_package(KFoo NO_MODULE PATH_SUFFIXES cmake)
>>>>
>>>> Then you can just always install to cmake/kfoo.  Once a version of
>>>> CMake supporting this location is required in the future this suffix
>>>> can be removed.
>>> Oops, nevermind.  The PATH_SUFFIXES get appended to each generated path,
>>> not to each prefix.
>> I think you'll just have to require 2.6.3 if you want to move the files
>> from kfoo/cmake to cmake/kfoo.
> 
> No chance, it's not released yet, and people just complained enough that we 
> required 2.6.2, and we are about to freeze:
> http://techbase.kde.org/Schedules/KDE4/4.2_Release_Schedule

Fortunately there is a pretty simple patch to 2.6.2 we can give to
distribution maintainers who want this to work to keep their system's clean.
I've included it below.

-Brad

diff -cp -r cmake-2.6.2-orig/Source/cmFindPackageCommand.cxx cmake-2.6.2/Source/cmFindPackageCommand.cxx
*** cmake-2.6.2-orig/Source/cmFindPackageCommand.cxx    2008-09-24 14:34:35.000000000 -0400
--- cmake-2.6.2/Source/cmFindPackageCommand.cxx 2008-12-18 09:09:25.000000000 -0500
*************** cmFindPackageCommand::cmFindPackageComma
*** 218,223 ****
--- 218,224 ----
      "UNIX (U), or Apple (A) conventions.\n"
      "  <prefix>/                                               (W)\n"
      "  <prefix>/(cmake|CMake)/                                 (W)\n"
+     "  <prefix>/(share|lib)/cmake/<name>*/                     (U)\n"
      "  <prefix>/(share|lib)/<name>*/                           (U)\n"
      "  <prefix>/(share|lib)/<name>*/(cmake|CMake)/             (U)\n"
      "On systems supporting OS X Frameworks and Application Bundles "
*************** bool cmFindPackageCommand::SearchPrefix(
*** 1710,1715 ****
--- 1711,1730 ----
    common.push_back("lib");
    common.push_back("share");

+   //  PREFIX/(share|lib)/cmake/(Foo|foo|FOO).*/
+   {
+   cmFindPackageFileList lister(this);
+   lister
+     / cmFileListGeneratorFixed(prefix)
+     / cmFileListGeneratorEnumerate(common)
+     / cmFileListGeneratorFixed("cmake")
+     / cmFileListGeneratorProject(this->Names);
+   if(lister.Search())
+     {
+     return true;
+     }
+   }
+
    //  PREFIX/(share|lib)/(Foo|foo|FOO).*/
    {
    cmFindPackageFileList lister(this);


More information about the Kde-buildsystem mailing list