Add Swift compilation flags to enable Clang's validate-per-build-session module behavior

Add '-validate-clang-modules-once' and '-clang-build-session-file' corresponding to Clang's '-fmodules-validate-once-per-build-session' and '-fbuild-session-file='. Ensure they are propagated to module interface build sub-invocations.

We require these to be first-class Swift options in order to ensure they are propagated to both: ClangImporter and implicit interface build compiler sub-invocations.

Compiler portion of rdar://105982120
This commit is contained in:
Artem Chikin
2023-02-28 10:50:09 -08:00
parent a64fc3b66d
commit 3ea5087e2f
9 changed files with 104 additions and 0 deletions

View File

@@ -178,6 +178,15 @@ def no_strict_implicit_module_context :
Flags<[FrontendOption, HelpHidden]>,
HelpText<"Disable the strict forwarding of compilation context to downstream implicit module dependencies">;
def validate_clang_modules_once :
Flag<["-"], "validate-clang-modules-once">,
Flags<[FrontendOption]>,
HelpText<"Don't verify input files for Clang modules if the module has been successfully validated or loaded during this build session">;
def clang_build_session_file : Separate<["-"], "clang-build-session-file">,
Flags<[FrontendOption, ArgumentIsPath]>,
HelpText<"Use the last modification time of <file> as the underlying Clang build session timestamp">;
def disallow_forwarding_driver :
Flag<["-"], "disallow-use-new-driver">, Flags<[]>,
HelpText<"Disable using new swift-driver">;