Skip to content

Commit 290e9ed

Browse files
committed
[Driver/Frontend] Add target variant SDK version for Catalyst.
1 parent 548e281 commit 290e9ed

File tree

6 files changed

+36
-0
lines changed

6 files changed

+36
-0
lines changed

include/swift/Basic/LangOptions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@ namespace swift {
7878
/// The SDK version, if known.
7979
Optional<llvm::VersionTuple> SDKVersion;
8080

81+
/// The target variant SDK version, if known.
82+
Optional<llvm::VersionTuple> VariantSDKVersion;
83+
8184
///
8285
/// Language features
8386
///

include/swift/Option/FrontendOptions.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -705,4 +705,7 @@ def bridging_header_directory_for_print: Separate<["-"], "bridging-header-direct
705705
def target_sdk_version : Separate<["-"], "target-sdk-version">,
706706
HelpText<"The version of target SDK used for compilation">;
707707

708+
def target_variant_sdk_version : Separate<["-"], "target-variant-sdk-version">,
709+
HelpText<"The version of target variant SDK used for compilation">;
710+
708711
} // end let Flags = [FrontendOption, NoDriverOption, HelpHidden]

lib/Driver/DarwinToolChains.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,14 @@ void toolchains::Darwin::addCommonFrontendArgs(
634634
arguments.push_back("-target-sdk-version");
635635
arguments.push_back(inputArgs.MakeArgString(sdkVersion->getAsString()));
636636
}
637+
638+
if (auto targetVariant = getTargetVariant()) {
639+
if (auto variantSDKVersion = getTargetSDKVersion(*targetVariant)) {
640+
arguments.push_back("-target-variant-sdk-version");
641+
arguments.push_back(
642+
inputArgs.MakeArgString(variantSDKVersion->getAsString()));
643+
}
644+
}
637645
}
638646

639647
ToolChain::InvocationInfo

lib/Frontend/CompilerInvocation.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,18 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
606606
}
607607
}
608608

609+
// Parse the target variant SDK version.
610+
if (Arg *A = Args.getLastArg(options::OPT_target_variant_sdk_version)) {
611+
auto vers = version::Version::parseVersionString(
612+
A->getValue(), SourceLoc(), &Diags);
613+
if (vers.hasValue()) {
614+
Opts.VariantSDKVersion = *vers;
615+
} else {
616+
Diags.diagnose(SourceLoc(), diag::error_invalid_arg_value,
617+
A->getAsString(Args), A->getValue());
618+
}
619+
}
620+
609621
return HadError || UnsupportedOS || UnsupportedArch;
610622
}
611623

test/Driver/frontend.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// RUN: %swiftc_driver %s -### 2>&1 | %FileCheck %s
2+
3+
// CHECK: swift-frontend
4+

test/Driver/macabi-environment.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,20 @@
102102
// SDK version information.
103103

104104
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.14 -target-variant x86_64-apple-ios13.0-macabi -sdk %S/Inputs/MacOSX10.15.versioned.sdk %s 2>&1 | %FileCheck -check-prefix MACOS_10_15_ZIPPERED %s
105+
// MACOS_10_15_ZIPPERED: -target-sdk-version 10.15
106+
// MACOS_10_15_ZIPPERED: -target-variant-sdk-version 13.1
105107
// MACOS_10_15_ZIPPERED: -platform_version macos 10.14.0 10.15.0
106108
// MACOS_10_15_ZIPPERED: -platform_version mac-catalyst 13.0.0 13.1.0
107109

108110
// RUN: %swiftc_driver -driver-print-jobs -target x86_64-apple-macosx10.14 -target-variant x86_64-apple-ios13.0-macabi -sdk %S/Inputs/MacOSX10.15.4.versioned.sdk %s 2>&1 | %FileCheck -check-prefix MACOS_10_15_4_ZIPPERED %s
111+
// MACOS_10_15_4_ZIPPERED: -target-sdk-version 10.15.4
112+
// MACOS_10_15_4_ZIPPERED: -target-variant-sdk-version 13.4
109113
// MACOS_10_15_4_ZIPPERED: -platform_version macos 10.14.0 10.15.4
110114
// MACOS_10_15_4_ZIPPERED: -platform_version mac-catalyst 13.0.0 13.4.0
111115

112116
// RUN: %swiftc_driver -driver-print-jobs -target-variant x86_64-apple-macosx10.14 -target x86_64-apple-ios13.0-macabi -sdk %S/Inputs/MacOSX10.15.4.versioned.sdk %s 2>&1 | %FileCheck -check-prefix MACOS_10_15_4_REVERSE_ZIPPERED %s
117+
// MACOS_10_15_4_REVERSE_ZIPPERED: -target-sdk-version 13.4
118+
// MACOS_10_15_4_REVERSE_ZIPPERED: -target-variant-sdk-version 10.15.4
113119
// MACOS_10_15_4_REVERSE_ZIPPERED: -platform_version mac-catalyst 13.0.0 13.4.0
114120
// MACOS_10_15_4_REVERSE_ZIPPERED: -platform_version macos 10.14.0 10.15.4
115121

0 commit comments

Comments
 (0)