swift
9d59044b - [BrdigingHeader] Auto bridging header chaining

Commit
137 days ago
[BrdigingHeader] Auto bridging header chaining Add ability to automatically chaining the bridging headers discovered from all dependencies module when doing swift caching build. This will eliminate all implicit bridging header imports from the build and make the bridging header importing behavior much more reliable, while keep the compatibility at maximum. For example, if the current module A depends on module B and C, and both B and C are binary modules that uses bridging header, when building module A, dependency scanner will construct a new header that chains three bridging headers together with the option to build a PCH from it. This will make all importing errors more obvious while improving the performance.
Committer
Parents
  • include
    • swift-c/DependencyScan
      • File
        DependencyScan.h
    • swift
      • AST
        • File
          ModuleDependencies.h
        • File
          SearchPathOptions.h
      • Basic
        • File
          LangOptions.h
      • ClangImporter
        • File
          ClangImporter.h
      • DependencyScan
        • File
          DependencyScanImpl.h
        • File
          ModuleDependencyScanner.h
        • File
          SerializedModuleDependencyCacheFormat.h
      • Frontend
        • File
          CompileJobCacheKey.h
        • File
          FrontendOptions.h
      • Option
        • FrontendOptions.td
        • Options.td
      • Serialization
        • File
          SerializationOptions.h
        • File
          SerializedModuleLoader.h
  • lib
    • AST
      • File
        ModuleDependencies.cpp
    • Basic
      • File
        LangOptions.cpp
    • ClangImporter
      • File
        ClangImporter.cpp
      • File
        ClangModuleDependencyScanner.cpp
    • DependencyScan
      • File
        DependencyScanJSON.cpp
      • File
        ModuleDependencyCacheSerialization.cpp
      • File
        ModuleDependencyScanner.cpp
      • File
        ScanDependencies.cpp
    • Frontend
      • File
        ArgsToFrontendOptionsConverter.cpp
      • File
        CompileJobCacheKey.cpp
      • File
        CompilerInvocation.cpp
      • File
        Frontend.cpp
    • Serialization
      • File
        ModuleFile.cpp
      • File
        ModuleFileSharedCore.h
      • File
        Serialization.cpp
      • File
        SerializedModuleLoader.cpp
    • Tooling/libSwiftScan
      • File
        libSwiftScan.cpp
      • libSwiftScan.exports
  • test
    • CAS
      • Inputs
        • File
          BuildCommandExtractor.py
        • File
          ExtractOutputKey.py
      • File
        bridging-header.swift
      • File
        cached_diagnostics.swift
      • File
        cached_diagnostics_remap.swift
      • File
        deps_cas_fs.swift
      • File
        module_deps.swift
      • File
        module_deps_include_tree.swift
      • File
        module_path_remap.swift
      • File
        plugin_cas.swift
    • ScanDependencies
      • File
        bridging-header-autochaining.swift
  • tools/swift-scan-test
    • File
      swift-scan-test.cpp