[cfe-dev] Relative Paths in Compilation Database

Manuel Klimek klimek at google.com
Tue Mar 17 04:07:15 PDT 2015


I think this is a known problem. Patches very welcome :)

On Tue, Mar 17, 2015 at 1:14 AM Daniel Dilts <diltsman at gmail.com> wrote:

> I am calling runClangTidy using a JSONCompilationDatabase that I generate
> from a string.  Everything works perfectly until I have a relative path.
>
> With the following database I use "D:\\CMakeTest\\bld\\..\\src\\main.cpp"
> as the file to open:
> [
>    {
>       "directory": "D:\\CMakeTest\\bld\\",
>       "command"  : "D:/llvm/build/Debug/bin/clang.exe -I\"C:\\Program
> Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\" -I\"C:\\Program
> Files (x86)\\Microsoft Visual Studio 12.0\\VC\\atlmfc\\include\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\um\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\shared\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\winrt\"
> -I\"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\"
> -I\"C:\\Program Files (x86)\\Microsoft Visual Studio
> 12.0\\VC\\atlmfc\\include\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\um\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\shared\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\winrt\"   -DWIN32 -D_WINDOWS -D_DEBUG
> -DCMAKE_INTDIR=\"Debug\" ..\\src\\main.cpp",
>       "file"     : "..\\src\\main.cpp"
>    },
> ]
>
> This gives me an output of "Error while processing
> D:\\CMakeTest\\bld\\..\\src\\main.cpp."
>
> When I use the following database with "D:\\CMakeTest\\src\\main.cpp" as
> the file to open, everything works.
>
> [
>    {
>       "directory": "D:\\CMakeTest\\src\\",
>       "command"  : "D:/llvm/build/Debug/bin/clang.exe -I\"C:\\Program
> Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\" -I\"C:\\Program
> Files (x86)\\Microsoft Visual Studio 12.0\\VC\\atlmfc\\include\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\um\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\shared\"
> -I\"C:\\Program Files (x86)\\Windows Kits\\8.1\\Include\\winrt\"
> -I\"C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\"
> -I\"C:\\Program Files (x86)\\Microsoft Visual Studio
> 12.0\\VC\\atlmfc\\include\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\um\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\shared\" -I\"C:\\Program Files (x86)\\Windows
> Kits\\8.1\\Include\\winrt\"   -DWIN32 -D_WINDOWS -D_DEBUG
> -DCMAKE_INTDIR=\"Debug\" main.cpp",
>       "file"     : "main.cpp"
>    },
> ]
>
>
> Is there something that I am doing wrong?  The only changes between the
> two compilation databases are the directory and file entries.  Both should
> refer to the same absolute path.
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150317/c93978f6/attachment.html>


More information about the cfe-dev mailing list