mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[CAS] swift dependency scanning using CAS for compiler caching (#66366)
Teach swift dependency scanner to use CAS to capture the full dependencies for a build and construct build commands with immutable inputs from CAS. This allows swift compilation caching using CAS.
This commit is contained in:
@@ -1438,12 +1438,15 @@ static bool ParseClangImporterArgs(ClangImporterOptions &Opts,
|
||||
Opts.ExtraArgs.push_back("-fdebug-prefix-map=" + Val);
|
||||
}
|
||||
|
||||
if (!workingDirectory.empty()) {
|
||||
// Provide a working directory to Clang as well if there are any -Xcc
|
||||
// options, in case some of them are search-related. But do it at the
|
||||
// beginning, so that an explicit -Xcc -working-directory will win.
|
||||
Opts.ExtraArgs.insert(Opts.ExtraArgs.begin(),
|
||||
{"-working-directory", workingDirectory.str()});
|
||||
if (FrontendOpts.CASFSRootIDs.empty() &&
|
||||
FrontendOpts.ClangIncludeTrees.empty()) {
|
||||
if (!workingDirectory.empty()) {
|
||||
// Provide a working directory to Clang as well if there are any -Xcc
|
||||
// options, in case some of them are search-related. But do it at the
|
||||
// beginning, so that an explicit -Xcc -working-directory will win.
|
||||
Opts.ExtraArgs.insert(Opts.ExtraArgs.begin(),
|
||||
{"-working-directory", workingDirectory.str()});
|
||||
}
|
||||
}
|
||||
|
||||
Opts.DumpClangDiagnostics |= Args.hasArg(OPT_dump_clang_diagnostics);
|
||||
@@ -1463,6 +1466,8 @@ static bool ParseClangImporterArgs(ClangImporterOptions &Opts,
|
||||
|
||||
if (auto *A = Args.getLastArg(OPT_import_objc_header))
|
||||
Opts.BridgingHeader = A->getValue();
|
||||
Opts.BridgingHeaderPCHCacheKey =
|
||||
Args.getLastArgValue(OPT_bridging_header_pch_key);
|
||||
Opts.DisableSwiftBridgeAttr |= Args.hasArg(OPT_disable_swift_bridge_attr);
|
||||
|
||||
Opts.DisableOverlayModules |= Args.hasArg(OPT_emit_imported_modules);
|
||||
@@ -1473,6 +1478,7 @@ static bool ParseClangImporterArgs(ClangImporterOptions &Opts,
|
||||
|
||||
Opts.ExtraArgsOnly |= Args.hasArg(OPT_extra_clang_options_only);
|
||||
Opts.DirectClangCC1ModuleBuild |= Args.hasArg(OPT_direct_clang_cc1_module_build);
|
||||
Opts.UseClangIncludeTree |= Args.hasArg(OPT_clang_include_tree);
|
||||
|
||||
if (const Arg *A = Args.getLastArg(OPT_pch_output_dir)) {
|
||||
Opts.PrecompiledHeaderOutputDir = A->getValue();
|
||||
|
||||
Reference in New Issue
Block a user