@@ -646,31 +646,6 @@ public struct Driver {
646
646
diagnosticEngine: diagnosticsEngine,
647
647
compilerMode: compilerMode)
648
648
649
- let cachingEnabled = parsedOptions. hasArgument ( . cacheCompileJob) || env. keys. contains ( " SWIFT_ENABLE_CACHING " )
650
- if cachingEnabled {
651
- if !parsedOptions. hasArgument ( . driverExplicitModuleBuild) {
652
- diagnosticsEngine. emit ( . warning( " -cache-compile-job cannot be used without explicit module build, turn off caching " ) ,
653
- location: nil )
654
- self . enableCaching = false
655
- } else {
656
- self . enableCaching = true
657
- }
658
- } else {
659
- self . enableCaching = false
660
- }
661
- self . useClangIncludeTree = !parsedOptions. hasArgument ( . noClangIncludeTree) && !env. keys. contains ( " SWIFT_CACHING_USE_CLANG_CAS_FS " )
662
- self . scannerPrefixMap = try Self . computeScanningPrefixMapper ( & parsedOptions)
663
- if let sdkMapping = parsedOptions. getLastArgument ( . scannerPrefixMapSdk) ? . asSingle {
664
- self . scannerPrefixMapSDK = try AbsolutePath ( validating: sdkMapping)
665
- } else {
666
- self . scannerPrefixMapSDK = nil
667
- }
668
- if let toolchainMapping = parsedOptions. getLastArgument ( . scannerPrefixMapToolchain) ? . asSingle {
669
- self . scannerPrefixMapToolchain = try AbsolutePath ( validating: toolchainMapping)
670
- } else {
671
- self . scannerPrefixMapToolchain = nil
672
- }
673
-
674
649
// Compute the working directory.
675
650
workingDirectory = try parsedOptions. getLastArgument ( . workingDirectory) . map { workingDirectoryArg in
676
651
let cwd = fileSystem. currentWorkingDirectory
@@ -851,6 +826,36 @@ public struct Driver {
851
826
}
852
827
self . supportedFrontendFeatures = try Self . computeSupportedCompilerFeatures ( of: self . toolchain, env: env)
853
828
829
+ // Caching options.
830
+ let cachingEnabled = parsedOptions. hasArgument ( . cacheCompileJob) || env. keys. contains ( " SWIFT_ENABLE_CACHING " )
831
+ if cachingEnabled {
832
+ if !parsedOptions. hasArgument ( . driverExplicitModuleBuild) {
833
+ diagnosticsEngine. emit ( . warning( " -cache-compile-job cannot be used without explicit module build, turn off caching " ) ,
834
+ location: nil )
835
+ self . enableCaching = false
836
+ } else if importedObjCHeader != nil && bridgingPrecompiledHeader == nil {
837
+ diagnosticsEngine. emit ( . warning( " -cache-compile-job cannot be used with -disable-bridging-pch, turn off caching " ) ,
838
+ location: nil )
839
+ self . enableCaching = false
840
+ } else {
841
+ self . enableCaching = true
842
+ }
843
+ } else {
844
+ self . enableCaching = false
845
+ }
846
+ self . useClangIncludeTree = !parsedOptions. hasArgument ( . noClangIncludeTree) && !env. keys. contains ( " SWIFT_CACHING_USE_CLANG_CAS_FS " )
847
+ self . scannerPrefixMap = try Self . computeScanningPrefixMapper ( & parsedOptions)
848
+ if let sdkMapping = parsedOptions. getLastArgument ( . scannerPrefixMapSdk) ? . asSingle {
849
+ self . scannerPrefixMapSDK = try AbsolutePath ( validating: sdkMapping)
850
+ } else {
851
+ self . scannerPrefixMapSDK = nil
852
+ }
853
+ if let toolchainMapping = parsedOptions. getLastArgument ( . scannerPrefixMapToolchain) ? . asSingle {
854
+ self . scannerPrefixMapToolchain = try AbsolutePath ( validating: toolchainMapping)
855
+ } else {
856
+ self . scannerPrefixMapToolchain = nil
857
+ }
858
+
854
859
self . enabledSanitizers = try Self . parseSanitizerArgValues (
855
860
& parsedOptions,
856
861
diagnosticEngine: diagnosticEngine,
0 commit comments