ChuanqiXu marked 3 inline comments as done. ChuanqiXu added a comment. > I originally investigated (and ended up lost) for something like GCC where > P1689 <https://reviews.llvm.org/P1689> information is extracted via -E > -fdep-file=p1689.json -fdep-output=module.o -fdep-format=p1689 (which is > "abusing" -E, but works), but using clang-scan-deps was where we ended up > after a more-knowledgeable LLVM developer took over knowing what needed to be > done.
Yeah, I believe the clang-scan-deps would be the better option and according to the talk of `clang-scan-deps` (https://llvm.org/devmtg/2019-04/slides/TechTalk-Lorenz-clang-scan-deps_Fast_dependency_scanning_for_explicit_modules.pdf), it is also the goal of `clang-scan-deps` to support c++20 modules. ================ Comment at: clang/test/ClangScanDeps/P1689.cppm:11 +// RUN: clang-scan-deps -format=p1689 \ +// RUN: -- %clang++ -std=c++20 -c -fprebuilt-module-path=%t %t/M.cppm -o %t/M.o \ +// RUN: | FileCheck %t/M.cppm -DPREFIX=%/t ---------------- jansvoboda11 wrote: > I'm fairly happy with the `clang-scan-deps` interface now (besides the > performance aspect mentioned in another comment). > > @ChuanqiXu what would happen if you run this Clang command line directly? > what would happen if you run this Clang command line directly? I remember this refers to `%clang++ -std=c++20 -c -fprebuilt-module-path=%t %t/M.cppm -o %t/M.o` previously. And if we run this clang command line directly, it will compile the module-unit `M.cppm` into object files if all its dependent precompiled module files lives in the directory `%t`. The command line should be what will run actually. ================ Comment at: clang/test/ClangScanDeps/P1689.cppm:9 +// +// Check the seperated dependency format. +// RUN: clang-scan-deps -format=p1689 --p1689-targeted-file-name=%t/M.cppm --p1689-targeted-output=%t/M.o \ ---------------- jansvoboda11 wrote: > ben.boeckel wrote: > > jansvoboda11 wrote: > > > What does "separated" mean in this context? > > Yeah, this isn't the right term. There are two things being done: > > > > - discovering dependencies for a future compile (P1689) > > - collecting deps for the scanning itself to know that "if included file X > > changes, I need to rescan" > > > > Both are required for correct builds. > @ChuanqiXu Can you write up a better comment here? I've updated the comments to tell it is required for non-exist and potentially out-of-date files. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137534/new/ https://reviews.llvm.org/D137534 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits