================
@@ -99,5 +100,6 @@ add_clang_library(clangDriver
   LINK_LIBS
   clangBasic
   clangLex
+  clangDependencyScanning
----------------
naveen-seth wrote:

> As mentioned in my previous comment, this causes a cycle because 
> clangDependencyScanning depends on clangDriver. This is fine when statically 
> linking, but will fail with dynamic linking which we support.
> 
> This is only used by `DependencyScanningWorker::scanDependencies` to handle 
> driver commands. To fix this I think it would be best to remove this 
> dependency and instead have `scanDependencies` only work on frontend 
> commands. I would then add a function to `clangDriver` that takes a 
> `DependencyScanningWorker` and runs the scanner on all of frontend jobs, this 
> would then be used to replace calls to `scanDependencies`.
> 
> This will need to be handled before (or maybe as part of) this PR lands to 
> avoid build issues.

`clang-scan-deps` and `clangd` don’t call `computeDependencies` (which in turn 
calls `scanDependencies`) directly, but indirectly through 
`DependencyScanningTool`.
If we want `DependencyScanningTool` to continue supporting Driver command 
lines, it will necessarily need to keep a dependency on the Driver.

Can `DependencyScanningTool.cpp` / `DependencyScanningTool.h` be moved into the 
Driver as well? Conceptually, that might not be the cleanest fit, but it would 
resolve the dynamic linking issue.

https://github.com/llvm/llvm-project/pull/152770
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to