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