-
Notifications
You must be signed in to change notification settings - Fork 4.4k
[5/5] support C++20 Modules, support two phase compilation #22555
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
[5/5] support C++20 Modules, support two phase compilation #22555
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.