[cmake-developers] Generating buildsystem metadata from CMake
Stephen Kelly
steveire at gmail.com
Sat Apr 4 08:32:51 EDT 2015
On 04/02/2015 10:29 AM, Anton Makeev wrote:
> I see, but how will having include_directories help ‘Add include directory’-like actions?
> I mean, simply having this list (without additional info like backtraces) doesn’t seem to help much.
We'll have to see :).
>> So, in the end, we probably need tooling to be able to get the information
>> in both forms. Ie, as an array of directories, and as a string of compiler
>> command line options.
>>
>> We already have the latter in the form of compile-commands.json. One of the
>> reasons I wonder if you are using that already is to know whether
>>
>> 1) That is already a good enough solution
>> or
>> 2) The new metadata file should contain similar information
>>
>> I'm wondering if we can learn anything from your experience with the
>> existing file.
> I’m afraid we don’t have much to contribute here, since we don’t use this file at the moment.
> After a brief investigation, it seems to have the necessary command lines we expect in the form
> that can be easily parsed (apart from -o <path> -c <path> that will need to be cut out, but it’s not a big deal).
I'm sure we can generate content without those lines if we refactor the
Module files a bit.
>
> Just to make sure, you mentioned that this file should be deprecated with this new metadata.json,
> is that correct?
I'm not sure I mentioned that, just that it's an externally defined
format and we didn't want to try to extend it, but instead define a
different format. The new format will hopefully make it unnecessary for
IDEs to parse the compile-commands.json. However, there are other users
of the compile-commands.json, so it will remain and the feature for
generation of it will not be deprecated.
>> Does that make sense? That means you would read the "all_compile_flags" for
>> the specific source file if it is present, and use the "all_compile_flags"
>> for the target otherwise (which you already have cached).
> That sounds like a brilliant idea. This way we’ll have minimum duplication and minimum logic required on
> the IDE-side.
>
Great. Good to know this will work for you. I'll integrate the idea into
the next design iteration.
Thanks,
Steve.
More information about the cmake-developers
mailing list