find_package(Foo REQUIRED)

Allen Winter winter at kde.org
Thu Jun 18 01:09:03 CEST 2009


On Wednesday 17 June 2009 9:15:18 am Brad King wrote:
> Allen Winter wrote:
> > Maybe this should be a feature of cmake itself.. but I wish for
> > find_package(Foo REQUIRED) to print a nicer message 
> > if Foo is not found.
> > 
> > We have the macro_log_feature() stuff for the optional packages
> > which creates the nice summary at the end of the cmake run,
> > but when required FOO is not found all we get is a terse error and quit.
> > 
> > I wonder.. can we overload find_package() with a COMMENT option?
> > i.e. 
> > find_package(Foo REQUIRED COMMENT "Foo is a critical library and this software
> > cannot be build without it. Please install Foo <http://www.foo.org> version 2.9 or higher")
> > 
> > and have the COMMENT printed on termination?
> 
> In this case you're talking about improving the message using
> information specific to the call site.  You can just do this:
> 
>    find_package(Foo QUIET)
>    if(NOT Foo_FOUND)
>      message(FATAL_ERROR
>        "Foo is a critical library and this software cannot be build without it.  "
>        "Please install Foo <http://www.foo.org> version 2.9 or higher.")
>    endif()
> 
Perfect.  Now why didn't I think of that? :)

Using or logging feature, this example becomes:
find_package(Foo QUIET)
macro_log_feature(Foo_FOUND "Foo" "Foo Library" "http://www.foo.org" TRUE "2.9" "Foo is a critical library and this software cannot be built without it.")


More information about the Kde-buildsystem mailing list