@@ -1521,25 +1521,20 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
1521
1521
1522
1522
StreamString minimum_version_option;
1523
1523
bool use_current_os_version = false ;
1524
+ // If the SDK type is for the host OS, use its version number.
1525
+ auto get_host_os = []() { return HostInfo::GetTargetTriple ().getOS (); };
1524
1526
switch (sdk_type) {
1527
+ case XcodeSDK::Type::MacOSX:
1528
+ use_current_os_version = get_host_os () == llvm::Triple::MacOSX;
1529
+ break ;
1525
1530
case XcodeSDK::Type::iPhoneOS:
1526
- #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
1527
- use_current_os_version = true ;
1528
- #else
1529
- use_current_os_version = false ;
1530
- #endif
1531
+ use_current_os_version = get_host_os () == llvm::Triple::IOS;
1531
1532
break ;
1532
-
1533
- case XcodeSDK::Type::iPhoneSimulator:
1534
- use_current_os_version = false ;
1533
+ case XcodeSDK::Type::AppleTVOS:
1534
+ use_current_os_version = get_host_os () == llvm::Triple::TvOS;
1535
1535
break ;
1536
-
1537
- case XcodeSDK::Type::MacOSX:
1538
- #if defined(__i386__) || defined(__x86_64__)
1539
- use_current_os_version = true ;
1540
- #else
1541
- use_current_os_version = false ;
1542
- #endif
1536
+ case XcodeSDK::Type::watchOS:
1537
+ use_current_os_version = get_host_os () == llvm::Triple::WatchOS;
1543
1538
break ;
1544
1539
default :
1545
1540
break ;
@@ -1559,32 +1554,49 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
1559
1554
}
1560
1555
}
1561
1556
// Only add the version-min options if we got a version from somewhere
1562
- if (!version.empty ()) {
1557
+ if (!version.empty () && sdk_type != XcodeSDK::Type::Linux) {
1558
+ #define OPTION (PREFIX, NAME, VAR, ...) \
1559
+ const char *opt_##VAR = NAME; \
1560
+ (void )opt_##VAR;
1561
+ #include " clang/Driver/Options.inc"
1562
+ #undef OPTION
1563
+ minimum_version_option << ' -' ;
1563
1564
switch (sdk_type) {
1564
- case XcodeSDK::Type::iPhoneOS:
1565
- minimum_version_option.PutCString (" -mios-version-min=" );
1566
- minimum_version_option.PutCString (version.getAsString ());
1565
+ case XcodeSDK::Type::MacOSX:
1566
+ minimum_version_option << opt_mmacosx_version_min_EQ;
1567
1567
break ;
1568
1568
case XcodeSDK::Type::iPhoneSimulator:
1569
- minimum_version_option.PutCString (" -mios-simulator-version-min=" );
1570
- minimum_version_option.PutCString (version.getAsString ());
1569
+ minimum_version_option << opt_mios_simulator_version_min_EQ;
1571
1570
break ;
1572
- case XcodeSDK::Type::MacOSX:
1573
- minimum_version_option.PutCString (" -mmacosx-version-min=" );
1574
- minimum_version_option.PutCString (version.getAsString ());
1571
+ case XcodeSDK::Type::iPhoneOS:
1572
+ minimum_version_option << opt_mios_version_min_EQ;
1573
+ break ;
1574
+ case XcodeSDK::Type::AppleTVSimulator:
1575
+ minimum_version_option << opt_mtvos_simulator_version_min_EQ;
1576
+ break ;
1577
+ case XcodeSDK::Type::AppleTVOS:
1578
+ minimum_version_option << opt_mtvos_version_min_EQ;
1575
1579
break ;
1576
1580
case XcodeSDK::Type::WatchSimulator:
1577
- minimum_version_option.PutCString (" -mwatchos-simulator-version-min=" );
1578
- minimum_version_option.PutCString (version.getAsString ());
1581
+ minimum_version_option << opt_mwatchos_simulator_version_min_EQ;
1579
1582
break ;
1580
- case XcodeSDK::Type::AppleTVSimulator:
1581
- minimum_version_option.PutCString (" -mtvos-version-min=" );
1582
- minimum_version_option.PutCString (version.getAsString ());
1583
+ case XcodeSDK::Type::watchOS:
1584
+ minimum_version_option << opt_mwatchos_version_min_EQ;
1583
1585
break ;
1584
- default :
1585
- llvm_unreachable (" unsupported sdk" );
1586
+ case XcodeSDK::Type::bridgeOS:
1587
+ case XcodeSDK::Type::Linux:
1588
+ case XcodeSDK::Type::unknown:
1589
+ if (lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_HOST)) {
1590
+ XcodeSDK::Info info;
1591
+ info.type = sdk_type;
1592
+ LLDB_LOGF (lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_HOST),
1593
+ " Clang modules on %s are not supported" ,
1594
+ XcodeSDK::GetCanonicalName (info).c_str ());
1595
+ }
1596
+ return ;
1586
1597
}
1587
- options.push_back (std::string (minimum_version_option.GetString ()));
1598
+ minimum_version_option << version.getAsString ();
1599
+ options.emplace_back (std::string (minimum_version_option.GetString ()));
1588
1600
}
1589
1601
1590
1602
FileSpec sysroot_spec;
0 commit comments