[cmake-developers] Extracting target metadata, IDE integration
Alexander Neundorf
neundorf at kde.org
Mon Feb 16 16:44:01 EST 2015
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.
Alex
More information about the cmake-developers
mailing list