[CAS] Improve swift cas options

Using the same CASOption from clang to communicate CAS configurations so
it is easier to exchange CAS configuration between them.
This commit is contained in:
Steven Wu
2023-06-12 15:33:35 -07:00
parent b1b16981fe
commit 2b7d38dc16
15 changed files with 289 additions and 39 deletions

View File

@@ -454,17 +454,12 @@ void SwiftDependencyScanningService::setupCachingDependencyScanningService(
auto CachingFS =
llvm::cas::createCachingOnDiskFileSystem(Instance.getObjectStore());
if (!CachingFS) {
Instance.getDiags().diagnose(SourceLoc(), diag::error_create_cas,
"CachingOnDiskFS",
Instance.getDiags().diagnose(SourceLoc(), diag::error_cas,
toString(CachingFS.takeError()));
return;
}
CacheFS = std::move(*CachingFS);
clang::CASOptions CASOpts;
CASOpts.CASPath = Instance.getInvocation().getFrontendOptions().CASPath;
CASOpts.ensurePersistentCAS();
UseClangIncludeTree =
Instance.getInvocation().getClangImporterOptions().UseClangIncludeTree;
const clang::tooling::dependencies::ScanningOutputFormat ClangScanningFormat =
@@ -474,8 +469,9 @@ void SwiftDependencyScanningService::setupCachingDependencyScanningService(
ClangScanningService.emplace(
clang::tooling::dependencies::ScanningMode::DependencyDirectivesScan,
ClangScanningFormat, CASOpts, Instance.getSharedCASInstance(),
Instance.getSharedCacheInstance(),
ClangScanningFormat,
Instance.getInvocation().getFrontendOptions().CASOpts,
Instance.getSharedCASInstance(), Instance.getSharedCacheInstance(),
UseClangIncludeTree ? nullptr : CacheFS,
/* ReuseFileManager */ false, /* OptimizeArgs */ false);
}