From ebe92d5496dc88899efc037736755dfb33a6d14e Mon Sep 17 00:00:00 2001 From: Artem Chikin Date: Fri, 30 Jul 2021 14:16:42 -0700 Subject: [PATCH] [Explicit Module Builds] Pass in `-fno-implicit-module-maps` for pre-building Clang explicit dependencies The dependency scanner specifies which exact modulemaps must be used, we do not need Clang to also search for modulemaps. --- .../ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift | 2 +- Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift b/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift index 5040ec1f2..b80142b7a 100644 --- a/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift +++ b/Sources/SwiftDriver/ExplicitModuleBuilds/ExplicitDependencyBuildPlanner.swift @@ -240,7 +240,7 @@ public typealias ExternalTargetModulePathMap = [ModuleDependencyId: AbsolutePath commandLine: inout [Job.ArgTemplate]) throws { // Prohibit the frontend from implicitly building textual modules into binary modules. commandLine.appendFlags("-disable-implicit-swift-modules", "-Xcc", "-Xclang", "-Xcc", - "-fno-implicit-modules") + "-fno-implicit-modules", "-Xcc", "-Xclang", "-Xcc", "-fno-implicit-module-maps") var swiftDependencyArtifacts: [SwiftModuleArtifactInfo] = [] var clangDependencyArtifacts: [ClangModuleArtifactInfo] = [] try addModuleDependencies(moduleId: moduleId, pcmArgs: pcmArgs, diff --git a/Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift b/Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift index 4a6175f14..56b712ddc 100644 --- a/Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift +++ b/Tests/SwiftDriverTests/ExplicitModuleBuildTests.swift @@ -59,6 +59,8 @@ throws { // Ensure the frontend was prohibited from doing implicit module builds XCTAssertTrue(job.commandLine.contains(.flag(String("-disable-implicit-swift-modules")))) XCTAssertTrue(job.commandLine.contains(.flag(String("-fno-implicit-modules")))) + XCTAssertTrue(job.commandLine.contains(.flag(String("-fno-implicit-module-maps")))) + try checkExplicitModuleBuildJobDependencies(job: job, pcmArgs: downstreamPCMArgs, moduleInfo: moduleInfo, dependencyGraph: dependencyGraph,