KDE/kdelibs

Christophe Giboudeaux cgiboudeaux at gmail.com
Mon Dec 14 23:13:48 CET 2009


On Monday 14 December 2009 22:31:38 Alexander Neundorf wrote:
> On Monday 14 December 2009, Christophe Giboudeaux wrote:

> > Here's an example showing why the REQUIRED keyword may also be
> > misleading:
> >
> > CMakeLists.txt:
> >
> > project(demo)
> > cmake_minimum_required(VERSION 2.8)
> > find_package(SharedDesktopOntologies 0.3 REQUIRED)
> >
> >
> > SharedDesktopOntologies 0.3 doesn't exist. When running this
> > CMakeLists.txt, the only information you will get is that:
> >
> > [quote]
> > CMake Error at CMakeLists.txt:4 (find_package):
> >   Could not find module FindSharedDesktopOntologies.cmake or a
> > configuration file for package SharedDesktopOntologies.
> >
> >   Adjust CMAKE_MODULE_PATH to find FindSharedDesktopOntologies.cmake or
> > set SharedDesktopOntologies_DIR to the directory containing a CMake
> > configuration file for SharedDesktopOntologies.  The file will have one
> > of the following names:
> >
> >     SharedDesktopOntologiesConfig.cmake
> >     shareddesktopontologies-config.cmake
> >
> >
> > -- Configuring incomplete, errors occurred!
> >
> > [/quote]
> >
> > Which is totally wrong. The directory which contains
> 
> Please post this to the cmake bugtracker at http://public.kitware.com/Bug ,
> that the error message is misleading in the case that there is "just" a
> version mismatch.
> 
> > SharedDesktopOntologiesConfig.cmake is in my CMAKE_PREFIX_PATH, if I
> > change the minimum version to 0.2, CMake will find it.
> 
> What we can do beside that, is to add a small
> FindSharedDesktopOntologies.cmake, which will basically just wrap the
> find_package(... NO_MODULE) call with a nicer error message.
> 

This file exists in kdelibs and creates two issues :

1/ 
project(demo)
cmake_minimum_required(VERSION 2.8)
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
find_package(SharedDesktopOntologies 0.3 REQUIRED)

will claim that SharedDesktopOntologies is found:

[quote]
-- Found KDE 4.4 include dir: /usr/include
-- Found KDE 4.4 library dir: /usr/lib
-- Found the KDE4 kconfig_compiler preprocessor: /usr/bin/kconfig_compiler
-- Found automoc4: /usr/bin/automoc4
-- Found SharedDesktopOntologies: /usr/share/ontology
-- Configuring done
[/quote]

2/ in kdepim and kdepim-runtime, soprano and nepomuk are optional but 
SharedDesktopOntologies is required if nepomuk is not disabled and found on 
the system:

macro_optional_find_package(Nepomuk)
macro_log_feature(Nepomuk_FOUND "Nepomuk" "The Nepomuk libraries" 
"http://www.kde.org" FALSE "" "Nepomuk extends the search and tagging 
functionalities in KMail and Akonadi")

# We require SharedDesktopOntology if nepomuk is enabled and was found on the 
system.
if(WITH_Nepomuk AND Nepomuk_FOUND)
  find_package(SharedDesktopOntologies 0.2)
  macro_log_feature(SHAREDDESKTOPONTOLOGIES_FOUND "Shared desktop ontologies" 
"Desktop ontologies" "http://oscaf.sourceforge.net" TRUE "0.2" "Ontologies 
necessary for the Nepomuk semantic desktop.")
endif(WITH_Nepomuk AND Nepomuk_FOUND)

CMake will claim that SharedDesktopOntologies is found even if the wrong 
version is installed and it will claim that Nepomuk wasn't found if S.D.O is 
not installed
The issue comes from FindNepomuk.cmake which calls 
FindSharedDesktopOntologies.cmake but doesn't require S.D.O:
macro_log_feature(SHAREDDESKTOPONTOLOGIES_FOUND "Shared desktop ontologies" 
"Desktop ontologies" "http://oscaf.sourceforge.net" FALSE "" "Ontologies 
necessary for the Nepomuk semantic desktop.")

If this is intentional, I have two alternatives:
* Use find_package(SharedDesktopOntologies 0.2 NO_MODULE) but I end up with two 
SDO lines in the macro_display_feature_log output.

* Use an option to enable our nepomuk agents and look for SDO before Nepomuk.


Christophe.

(Moving the discussion to the buildsystem ML)









-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-buildsystem/attachments/20091214/bf4b9f6c/attachment.sig 


More information about the Kde-buildsystem mailing list