compdb icon indicating copy to clipboard operation
compdb copied to clipboard

Doesn't work on Windows

Open kroppt opened this issue 1 year ago • 0 comments

Three problems happen on Windows which were not a problem on Linux:

  • The output flag doesn't exist.
  • Commands in compile_commands.json don't have properly escaped backslashes, which are common for Windows paths.
  • Output compile_commands.json is missing many header files.

Before:

...
{
  "directory": "C:/Users/Greg/code/take4/build",
  "command": "C:\\Users\\Greg\\scoop\\apps\\msys2\\current\\mingw64\\bin\\c++.exe -DCHUNK_SIZE=16 -DRAY_TRACING -DRECURSION_DEPTH=4 -DREGION_SIZE=16 -DSDL_MAIN_HANDLED -DCMAKE_INTDIR=\\\"Debug\\\" -IC:/Users/Greg/code/take4 -IC:/Users/Greg/code/take4/build/_deps/libpng-src -IC:/Users/Greg/code/take4/build/_deps/libpng-build -IC:/Users/Greg/code/take4/cache -IC:/Users/Greg/code/take4/graphics -IC:/Users/Greg/code/take4/player -IC:/Users/Greg/code/take4/utils -IC:/Users/Greg/code/take4/world -IC:/Users/Greg/code/take4/build/_deps/glm-src -IC:/Users/Greg/code/take4/build/_deps/sdl-build/include -IC:/Users/Greg/code/take4/build/_deps/sdl-build/include-config-debug -IC:/Users/Greg/code/take4/build/_deps/zlib-build -IC:/Users/Greg/code/take4/build/_deps/zlib-src -isystem C:/VulkanSDK/1.3.243.0/Include -g -std=c++20 -Wall -Wextra -Werror -Winvalid-pch -include C:/Users/Greg/code/take4/build/CMakeFiles/take4.dir/Debug/cmake_pch.hxx -o CMakeFiles\\take4.dir\\Debug\\graphics\\vma.cpp.obj -c C:\\Users\\Greg\\code\\take4\\graphics\\vma.cpp",
  "file": "C:\\Users\\Greg\\code\\take4\\graphics\\vma.cpp",
  "output": "CMakeFiles\\take4.dir\\Debug\\graphics\\vma.cpp.obj"
},
...

After:

...
{
  "directory": "C:/Users/Greg/code/take4/build",
  "command": "C:UsersGregscoopappsmsys2currentmingw64binc++.exe -DCHUNK_SIZE=16 -DRAY_TRACING -DRECURSION_DEPTH=4 -DREGION_SIZE=16 -DSDL_MAIN_HANDLED -DCMAKE_INTDIR=\\\"Debug\\\" -IC:/Users/Greg/code/take4 -IC:/Users/Greg/code/take4/build/_deps/libpng-src -IC:/Users/Greg/code/take4/build/_deps/libpng-build -IC:/Users/Greg/code/take4/cache -IC:/Users/Greg/code/take4/graphics -IC:/Users/Greg/code/take4/player -IC:/Users/Greg/code/take4/utils -IC:/Users/Greg/code/take4/world -IC:/Users/Greg/code/take4/build/_deps/glm-src -IC:/Users/Greg/code/take4/build/_deps/sdl-build/include -IC:/Users/Greg/code/take4/build/_deps/sdl-build/include-config-debug -IC:/Users/Greg/code/take4/build/_deps/zlib-build -IC:/Users/Greg/code/take4/build/_deps/zlib-src -isystem C:/VulkanSDK/1.3.243.0/Include -g -std=c++20 -Wall -Wextra -Werror -Winvalid-pch -include C:/Users/Greg/code/take4/build/CMakeFiles/take4.dir/Debug/cmake_pch.hxx -o CMakeFilestake4.dirDebuggraphicsvma.cpp.obj -c C:UsersGregcodetake4graphicsvma.cpp",
  "file": "C:\\Users\\Greg\\code\\take4\\graphics\\vma.cpp",
  "output": "CMakeFiles\\take4.dir\\Debug\\graphics\\vma.cpp.obj"
},
...

You can see how the paths are messed up: C:UsersGregscoopappsmsys2currentmingw64binc++.exe.

kroppt avatar Sep 24 '23 22:09 kroppt