[CMake] ?==?utf-8?q? Debug logging of items

Cornelis Bockemühl cornelis at bockemuehl.ch
Sun Sep 22 10:47:30 EDT 2019


Hi Eric,

Thanks for the hint regarding dumping variables: That's good to know!

However, I was learning that working with CMake is in may ways a question of adopting some "good practice", but it is not really being enforced by the language. One of the things that are for me part of this good practice would be to deal with targets and their dependencies, and properties. Which means a certain degree of modularity in the sense that you can easily plug projects together by just referring to targets, like by calling find_package().

But again: You will never easily know what a package is actually giving you - without investing hours and days of code reading - and maybe not even then!

But calling some "dump_targets" function after "find_package" (or also before and after - for comparison) would give you a chance to know the effect of endless "code deserts" with one line of code.

And because this is so fundamental in my eyes, I still almost assume that also for targets and properties there must be some function available - which I simply have not found yet!??

Or else I would consider this an urgent feature request!

Best regards,
Cornelis


Am Freitag, September 20, 2019 15:07 CEST, Eric Doenges <doenges at mvtec.com> schrieb:
  
I don't know about the targets, but you can get all variables currently defined for a directory by reading the VARIABLES property, e.g.
get_property(_variables DIRECTORY "${CMAKE_SOURCE_DIR}" PROPERTY VARIABLES)
I use this to dump the variables into a file so I can see with which variable settings my build directory was configured with.
With kind regards,
EricAm 20.09.19 um 14:49 schrieb Cornelis Bockemühl:
Right now I am fighting my way through large amounts of CMake code (actually working on a ParaView custom application with many own plugins, views, domains, property widgets etc. etc.), and it is sometimes really not easy not to lose track completely! Sometimes I am happy to be back into complex C++ programming - because I see much more logic in the entire thing. And it is of course no news that CMake code is not famous for being easy to debug.

Anyway, I am dreaming of some "simple" features that would sometimes help a lot, and it is all about "dumping" some kind of data. Actually this is for me often also the favorite way to debug C++ code: just print out the values of variables, arrays, etc. - e.g. if setting a breakpoint in the debugger is difficult because you are interested only in the 928773th occurrence of a certain piece of code (without even knowing that number...).

Accordingly in CMake code I am working a lot with the message() function - but within that code the problem is often that you do not even know which variables would be available at all!

Thus functions like would be really great to have:

    “give me a list of all currently known targets”
    “give me a list of all properties of a target”
    “give me a list of all currently defined variables”
    etc.

What I do not know is: Are this things that already exist - in which case I would be happy if somebody could tell me how to find them! -, or are these functions rather "feature requests"?

In fact I can hardly believe that I am the first with such kind of dreams, so my hope is still that they already exist somewhere...--
Dr. Eric Dönges
Senior Software Engineer
MVTec Software GmbH | Arnulfstr. 205 | 80634 Munich | Germany
doenges at mvtec.com | Tel: +49 89 457 695-0 | www.mvtec.com
Find our privacy policy here.
 Sign up for our MVTec Newsletter!
Geschäftsführer: Dr. Wolfgang Eckstein, Dr. Olaf Munkelt
Amtsgericht München HRB 114695
 
--
Cornelis Bockemühl
mail: cornelis at bockemuehl.ch
phone: +41 79 644 9943
Basel, Switzerland
https://cobo.bockemuehl.ch

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190922/56bd57cf/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 62A4-5D878980-D-69A20B00
Type: image/png
Size: 16631 bytes
Desc: not available
URL: <https://cmake.org/pipermail/cmake/attachments/20190922/56bd57cf/attachment-0001.png>


More information about the CMake mailing list