Porting from macro_log_feature without a package to FeatureSummary?

Stephen Kelly steveire at gmail.com
Fri Sep 16 15:07:10 UTC 2011


Alexander Neundorf wrote:

> On Tuesday, September 13, 2011 08:18:55 PM Stephen Kelly wrote:
>> Hi,
>> 
>> The current feature_summary seems to require a package. Things like this
>> work:
>> 
>> find_package(Foo)
>> set_package_properties(Foo ...)
>> 
>> But in solid we have:
>> 
>> find_program(BISON_EXECUTABLE bison) # ### Not find_package
>> macro_log_feature(bison ...)
>> 
>> 
>> Two ways out are:
>> 
>> * Add an equivalent feature to cmake
>> * Add a FindBison.cmake and find the package.
>> 
>> 
>> 
>> Regardless of whether cmake is modified to make this easier, I think we
>> should have a FindBison anyway.
>> 
>> What do you think?
> 
> What comes to my mind:
> * FeatureSummary.cmake is the one file where I didn't document the changes
> from MacroLogFeature.cmake yet
> 
> * is that maybe already possible
> add_feature_info() could be used to do that I think.

Sort of/not really. It doesn't have URL or PURPOSE fields, so if I use that 
I'd have to format it manually to look consistent:

diff --git a/tier1/solid/solid/CMakeLists.txt 
b/tier1/solid/solid/CMakeLists.txt
index c6c0b9f..02d435c 100644
--- a/tier1/solid/solid/CMakeLists.txt
+++ b/tier1/solid/solid/CMakeLists.txt
@@ -413,13 +413,8 @@ set_package_properties(Flex PROPERTIES
   )
 
 find_program(BISON_EXECUTABLE bison)
-macro_log_feature(BISON_EXECUTABLE
-   "Bison"
-   "Allows the Solid predicate parser to be updated"
-   "http://www.gnu.org/software/bison"
-   FALSE
-   ""
-   "Required by the UpdateSolidPredicateParser target (mainly useful for 
developers)")
+add_feature_info(Bison BISON_EXECUTABLE 
+   "Allows the Solid predicate parser to be updated, 
http://www.gnu.org/software/bison\n   * Required by the 
UpdateSolidPredicateParser target (mainly useful for developers)")
 mark_as_advanced(BISON_EXECUTABLE)      # don't show it in the simple view 
in cmake-gui/ccmake
 
Notice how I inserted a newline some spaces and a *, to be consistent with 
what the module *currently* looks like.

> 
> * how should using find_program/library/file/path() be interpreted as
> opposed to using find_package() ?

I think it might be enough to add PURPOSE and URL to add_feature_info.

> 
> One could argue that find_program() and friends are only for looking for
> implementation details, which should not be major features which need to
> be represented to the user at the end of the cmake run.
> And in general, having a FindBison.cmake sounds good.
> 

Ok, lets create one then. Should it be in cmake or ECM?

Thanks,

Steve.





More information about the Kde-buildsystem mailing list