[cmake-developers] Extracting target metadata, IDE integration

Aleix Pol aleixpol at kde.org
Mon Mar 2 20:15:31 EST 2015


On Mon, Feb 16, 2015 at 10:44 PM, Alexander Neundorf <neundorf at kde.org> wrote:
> On Monday, February 16, 2015 21:31:45 Aleix Pol wrote:
>> On Sat, Feb 14, 2015 at 1:02 PM, Stephen Kelly <steveire at gmail.com> wrote:
>> > Aleix Pol wrote:
>> >> Hi guys,
>> >> It's been since August with this. I understand we're all busy but this
>> >> step is important for KDevelop as well as for other IDE's and I
>> >> wouldn't like this to rot.
>> >>
>> >> Please, let's keep it moving forward.
>> >
>> > As far as I'm aware, it needs to move forward from this point:
>> >  http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/10711/fo
>> >  cus=12151>
>> > I'm not certain the design is finished (eg what the file should contain
>> > now
>> > or eventually). I asked for tests/documentation as a way to trigger
>> > getting
>> > the design finished. Having either would give us a list of use-cases and
>> > we
>> > would know what's in scope and what's not in scope (eg whether compile
>> > options/link options are in scope and why).
>>
>> I can look further into documentation, if that's what holding us back.
>>
>> > Another question: do you have any opinion about whether this should be one
>> > global file or one file per directory? I don't know - it seems like
>> > something that might or might not be relevant for tooling. Is the size of
>> > the generated file a consideration?
>>
>> I think the best is to have it all in 1 directory. You don't really
>> want to have watchers on many files over there.
>>
>> > How well does this feature work with large projects like VTK or a combined
>> > build of LLVM/Clang/lldb/libcxx/other ll projects.
>>
>> I just generated the file for LLVM: https://paste.kde.org/pxl8ozwah
>> It's a 127KiB file, I don't think it's too mental considering it's a
>> 330 MiB repository.
>
> I didn't follow the whole thread, just a few quick questions from looking at
> the file:
>
>
> {
>    "name": "obj2yaml",
>    "type": "EXECUTABLE",
>    "configs": [
>       ],
>    "directory": "/home/kde-devel/tmp/llvm/build/bin",
>    "location": "/home/kde-devel/tmp/llvm/build/bin/obj2yaml",
>    "backtrace": ["/home/kde-devel/tmp/llvm/cmake/modules/AddLLVM.cmake:452",
>                  "/home/kde-devel/tmp/llvm/cmake/modules/AddLLVM.cmake:485",
>                  "/home/kde-devel/tmp/llvm/tools/obj2yaml/CMakeLists.txt:6"],
>    "installed": true
>     },
>
>
> I guess "name" is the name of the target, type, configs, location, backtrace
> and installed seem to be clear.
>
> What about "directory" ?
> This is not the build dir where the target is defined (i.e.
> cmake_binary_dir(llvm/tools/obj2yaml/), is it ?
> This directory would seem useful to me, e.g. you can run "make help" there to
> get the list of targets to compile/assemble/preprocess the files for that
> target. Or you can run the clean-script for that target.

You are correct, it would be more useful indeed. Do you know how to
get the value? I've been trying to figure it out but I can't find the
correct method in cmTarget.

Aleix


More information about the cmake-developers mailing list