[PATCH] D23455: [Tooling] Parse compilation database command lines properly on Windows

Manuel Klimek via cfe-commits cfe-commits at lists.llvm.org
Sat Aug 13 21:57:49 PDT 2016

On Sat, Aug 13, 2016, 10:17 PM Zachary Turner <zturner at google.com> wrote:

> The json is generated by CMake, so I don't thinks we can do this without
> patching CMake, which is a non-starter.

Why? We did add compilation database support to cmake in the first place.
Back then I did not support windows, btw, so I'd be surprised if that
worked now without also using the arguments format that has already been
added to the spec for that reason.

I don't think this will break mingw. Mingw is still Windows, and still uses
> Windows backslashes, quoting rules, and escaping rules.
> You might be thinking of cygwin, but in the case LLVM_ON_WIN32is not
> defined.
> Reid, do you agree with this?

I'd like to see a stronger reason why adding arguments support to cmake is
not the right thing to do.

> On Sat, Aug 13, 2016 at 10:35 AM Alexander Kornienko <alexfh at google.com>
> wrote:
>> alexfh added inline comments.
>> ================
>> Comment at: lib/Tooling/JSONCompilationDatabase.cpp:119
>> @@ -115,1 +118,3 @@
>>      StringRef EscapedCommandLine) {
>> +#if defined(LLVM_ON_WIN32)
>> +  llvm::BumpPtrAllocator Alloc;
>> ----------------
>> As noted on D23409, this will likely break mingw compatibility in clang
>> on windows. We should either add a sort of auto-detection of the command
>> line format, or extend the JSON compilation database with a way to specify
>> the command line format used (or as Reid suggests, specify a list of
>> arguments, but this should be done in a backward-compatible way).
>> https://reviews.llvm.org/D23455
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160814/c20ac918/attachment.html>

More information about the cfe-commits mailing list