Skip to content

Commit b00a22c

Browse files
authored
Merge pull request #819 from owenv/owenv/arch-override
Disable SWIFT_MODULE_ONLY_ARCHS if we detect a SWIFT_PLATFORM_TARGET_PREFIX
2 parents 28cc7d5 + 02e65e4 commit b00a22c

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

Sources/SWBCore/Settings/BuiltinMacros.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ public final class BuiltinMacros {
142142
public static let HOST_TARGETED_PLATFORM_NAME = BuiltinMacros.declareStringMacro("HOST_TARGETED_PLATFORM_NAME")
143143
public static let SUPPORTS_MACCATALYST = BuiltinMacros.declareBooleanMacro("SUPPORTS_MACCATALYST")
144144
public static let SUPPORTS_ON_DEMAND_RESOURCES = BuiltinMacros.declareBooleanMacro("SUPPORTS_ON_DEMAND_RESOURCES")
145+
public static let __ORIGINAL_SDK_DEFINED_LLVM_TARGET_TRIPLE_SYS = BuiltinMacros.declareStringMacro("__ORIGINAL_SDK_DEFINED_LLVM_TARGET_TRIPLE_SYS")
145146
public static let SWIFT_PLATFORM_TARGET_PREFIX = BuiltinMacros.declareStringMacro("SWIFT_PLATFORM_TARGET_PREFIX")
146147
public static let TVOS_DEPLOYMENT_TARGET = BuiltinMacros.declareStringMacro("TVOS_DEPLOYMENT_TARGET")
147148
public static let VALID_ARCHS = BuiltinMacros.declareStringListMacro("VALID_ARCHS")
@@ -2281,6 +2282,7 @@ public final class BuiltinMacros {
22812282
SWIFT_SYSTEM_INCLUDE_PATHS,
22822283
PACKAGE_RESOURCE_BUNDLE_NAME,
22832284
PACKAGE_RESOURCE_TARGET_KIND,
2285+
__ORIGINAL_SDK_DEFINED_LLVM_TARGET_TRIPLE_SYS,
22842286
SWIFT_PLATFORM_TARGET_PREFIX,
22852287
USE_SWIFT_RESPONSE_FILE, // remove in rdar://53000820
22862288
SWIFT_INSTALL_MODULE,

Sources/SWBCore/Settings/Settings.swift

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2524,6 +2524,7 @@ private class SettingsBuilder {
25242524
}
25252525

25262526
if let llvmTargetTripleSys = variant.llvmTargetTripleSys {
2527+
sdkTable.push(BuiltinMacros.__ORIGINAL_SDK_DEFINED_LLVM_TARGET_TRIPLE_SYS, literal: llvmTargetTripleSys)
25272528
sdkTable.push(BuiltinMacros.SWIFT_PLATFORM_TARGET_PREFIX, literal: llvmTargetTripleSys)
25282529
}
25292530

@@ -4101,7 +4102,10 @@ private class SettingsBuilder {
41014102
// setting will primarily be used to support building Swift modules for deprecated (or at least unsupported)
41024103
// architectures.
41034104
let originalModuleOnlyArchs = scope.evaluate(BuiltinMacros.SWIFT_MODULE_ONLY_ARCHS)
4104-
let moduleOnlyArchs = onlyActiveArchApplied ? [] : originalModuleOnlyArchs
4105+
// Detect discouraged overrides of SWIFT_PLATFORM_TARGET_PREFIX and use this as a signal to suppress
4106+
// module only architectures
4107+
let tripleOverridesApplied = scope.evaluate(BuiltinMacros.SWIFT_PLATFORM_TARGET_PREFIX) != scope.evaluate(BuiltinMacros.__ORIGINAL_SDK_DEFINED_LLVM_TARGET_TRIPLE_SYS)
4108+
let moduleOnlyArchs = (onlyActiveArchApplied || tripleOverridesApplied) ? [] : originalModuleOnlyArchs
41054109
.filter { validArchs.contains($0) }
41064110
.filter { !excludedArchs.contains($0) }
41074111
.filter { !effectiveArchs.contains($0) }

0 commit comments

Comments
 (0)