[cfe-dev] tooling helper

Laszlo Nagy rizsotto.mailinglist at gmail.com
Sun Dec 9 06:32:42 PST 2012


Hi,

I need some help to clarify the JSON compilation database syntax... This
document <http://clang.llvm.org/docs/JSONCompilationDatabase.html> gives an
example with space separated definition. I tried to reproduce the desired
output with cmake, but failed.

  add_definitions(-DQUOTED_DEF="With spaces and quotes.")
  add_definitions(-DESCAPED_DEF=With\ spaces\ and\ without\ quotes.)

These extra lines causes this command on the terminal

  gcc -DQUOTED_DEF="\"With spaces and quotes.\"" -DESCAPED_DEF="With spaces
and without quotes."  -o ...

And the compile_commands.json file has entry like this

  "command": "/usr/lib64/ccache/gcc -DQUOTED_DEF=\"\\\"With spaces and
quotes.\\\"\" -DESCAPED_DEF=\"With spaces and without quotes.\" -o ..."

(The cmake version is 2.8.9) My understanding is that cmake does produce
valid JSON here. Only the document was wanted more elegant escaping by
single quotes. (-DSOMEDEF='\"With spaces and quotes.\"') Is that correct?

Regards,
Laszlo


On Sat, Nov 17, 2012 at 10:06 PM, Laszlo Nagy <
rizsotto.mailinglist at gmail.com> wrote:

> Hi,
>
> wrote a small program which might help to use the tools, which are using
> the tooling library. My understanding was that these tools need some
> compilation database. And one format is the JSON compilation database,
> which comes for free in a cmake project. Other projects could have
> difficulties to generate such file. And that's where a tool could help.
>
>   https://github.com/rizsotto/Bear
>
> It runs the build command and intercept the 'exec' calls, filters the
> compiler invocations and generate the output file. (It is using LD_PRELOAD
> from GNU Libc, so it is not really portable.)
>
> I know these kind of tools are out of scope here. But wanted to mention,
> because it could simplify to solve some cases. At least it did to me. ;)
>
> Regards,
> Laszlo
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20121209/faf640df/attachment.html>


More information about the cfe-dev mailing list