[5/5] support C++20 Modules, support two phase compilation#22555
[5/5] support C++20 Modules, support two phase compilation#22555PikachuHyA wants to merge 2 commits intobazelbuild:masterfrom
Conversation
|
as #19940 (comment) mentioned, I will remove remove the reuse of the .d file. |
8974044 to
29eb2f2
Compare
|
@PikachuHyA Could you please take a look at the failing checks? |
This patch is dependent on the changes in #22553. I will update this patch once that pull request has been merged. |
29eb2f2 to
b1630ee
Compare
fmeum
left a comment
There was a problem hiding this comment.
Could you add a disabled test that passes once the Starlark changes have been mirrored to rules_cc and the version used by Bazel has been updated?
| + " support in the future. Consider those risks when using it.") | ||
| public boolean experimentalCppModules; | ||
| @Option( | ||
| name = "experimental_cpp_modules_with_two_phase_compilation", |
There was a problem hiding this comment.
Could this be a feature instead of an option? That would make it more flexible and also require less non-Starlark code.
There was a problem hiding this comment.
I will update it to use the cpp_modules_with_two_phase_compilation feature.
fe4af30 to
b438279
Compare
… looks like support for this is just too far out (bazelbuild/bazel#22555)
I split the XXL PR #19940 into several small patches.
This is the fifth patch of Support C++20 Modules, I construct the build graph of compile with C++20 Modules.
Firstly, all files are scanned to generate
.ddifiles. All the.ddifiles are then aggregated to create a.CXXModules.jsonfile. Subsequently, based on the.CXXModules.jsonfile and their respective.ddifiles,.modmapfiles are generated. Finally, the compilation begins. The two-phase compilation is employed here.