You may want to take a look at the BUILDSYSTEM_TARGETS
<https://cmake.org/cmake/help/latest/prop_dir/BUILDSYSTEM_TARGETS.html>
directory property. It might not be quite what you're looking for, but it
might be close enough. I'm not aware of any way to get a list of all
defined properties on a given target though.


On Mon, Sep 23, 2019 at 12:47 AM Cornelis Bockemühl <corne...@bockemuehl.ch>
wrote:

> 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 <doen...@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,
> Eric
> Am 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...
>
>

-- 
Craig Scott
Melbourne, Australia
https://crascit.com

Get the hand-book for every CMake user: Professional CMake: A Practical
Guide <https://crascit.com/professional-cmake/>
Consulting services (CMake, C++, build/release processes):
https://crascit.com/services
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to