mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Update Driver to generate package interface only if package-name is passed
Resolves rdar://119275771
This commit is contained in:
@@ -2348,7 +2348,8 @@ void Driver::buildActions(SmallVectorImpl<const Action *> &TopLevelActions,
|
||||
C.createAction<VerifyModuleInterfaceJobAction>(MergeModuleAction,
|
||||
file_types::TY_PrivateSwiftModuleInterfaceFile));
|
||||
}
|
||||
if (Args.hasArgNoClaim(options::OPT_emit_package_module_interface_path)) {
|
||||
if (Args.hasArg(options::OPT_package_name) &&
|
||||
Args.hasArgNoClaim(options::OPT_emit_package_module_interface_path)) {
|
||||
TopLevelActions.push_back(
|
||||
C.createAction<VerifyModuleInterfaceJobAction>(MergeModuleAction,
|
||||
file_types::TY_PackageSwiftModuleInterfaceFile));
|
||||
@@ -2995,7 +2996,8 @@ Job *Driver::buildJobsForAction(Compilation &C, const JobAction *JA,
|
||||
chooseModuleInterfacePath(C, JA, workingDirectory, Buf,
|
||||
file_types::TY_PrivateSwiftModuleInterfaceFile, Output.get());
|
||||
|
||||
if (C.getArgs().hasArg(options::OPT_emit_package_module_interface_path))
|
||||
if (C.getArgs().hasArg(options::OPT_package_name) &&
|
||||
C.getArgs().hasArg(options::OPT_emit_package_module_interface_path))
|
||||
chooseModuleInterfacePath(C, JA, workingDirectory, Buf,
|
||||
file_types::TY_PackageSwiftModuleInterfaceFile, Output.get());
|
||||
|
||||
|
||||
38
test/ModuleInterface/package_interface_conditional_gen.swift
Normal file
38
test/ModuleInterface/package_interface_conditional_gen.swift
Normal file
@@ -0,0 +1,38 @@
|
||||
// RUN: %empty-directory(%t)
|
||||
// RUN: split-file %s %t
|
||||
|
||||
/// A package swiftinterface should be generated only if -package-name is passed.
|
||||
// RUN: %target-build-swift -emit-module %t/Bar.swift -I %t \
|
||||
// RUN: -module-name Bar -package-name foopkg \
|
||||
// RUN: -enable-library-evolution -swift-version 5 \
|
||||
// RUN: -emit-module-interface-path %t/Bar.swiftinterface \
|
||||
// RUN: -emit-package-module-interface-path %t/Bar.package.swiftinterface
|
||||
|
||||
// RUN: %FileCheck %s < %t/Bar.package.swiftinterface
|
||||
// CHECK: -package-name foopkg
|
||||
// CHECK: public struct PubStruct
|
||||
// CHECK: package struct PkgStruct
|
||||
|
||||
/// If -package-name is not passed, a package interface should not be generated even if
|
||||
/// `-emit-package-module-interface-path` is passed.
|
||||
// RUN: %target-build-swift -emit-module %t/Baz.swift -I %t \
|
||||
// RUN: -module-name Baz \
|
||||
// RUN: -enable-library-evolution -swift-version 5 \
|
||||
// RUN: -emit-module-interface-path %t/Baz.swiftinterface \
|
||||
// RUN: -emit-package-module-interface-path %t/Baz.package.swiftinterface
|
||||
|
||||
// RUN: ls %t | not grep "Baz.package.swiftinterface"
|
||||
|
||||
//--- Bar.swift
|
||||
public struct PubStruct {
|
||||
|
||||
}
|
||||
|
||||
package struct PkgStruct {
|
||||
|
||||
}
|
||||
|
||||
//--- Baz.swift
|
||||
public struct PubStruct {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user