@@ -1477,25 +1477,20 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
1477
1477
1478
1478
StreamString minimum_version_option;
1479
1479
bool use_current_os_version = false ;
1480
+ // If the SDK type is for the host OS, use its version number.
1481
+ auto get_host_os = []() { return HostInfo::GetTargetTriple ().getOS (); };
1480
1482
switch (sdk_type) {
1483
+ case XcodeSDK::Type::MacOSX:
1484
+ use_current_os_version = get_host_os () == llvm::Triple::MacOSX;
1485
+ break ;
1481
1486
case XcodeSDK::Type::iPhoneOS:
1482
- #if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
1483
- use_current_os_version = true ;
1484
- #else
1485
- use_current_os_version = false ;
1486
- #endif
1487
+ use_current_os_version = get_host_os () == llvm::Triple::IOS;
1487
1488
break ;
1488
-
1489
- case XcodeSDK::Type::iPhoneSimulator:
1490
- use_current_os_version = false ;
1489
+ case XcodeSDK::Type::AppleTVOS:
1490
+ use_current_os_version = get_host_os () == llvm::Triple::TvOS;
1491
1491
break ;
1492
-
1493
- case XcodeSDK::Type::MacOSX:
1494
- #if defined(__i386__) || defined(__x86_64__)
1495
- use_current_os_version = true ;
1496
- #else
1497
- use_current_os_version = false ;
1498
- #endif
1492
+ case XcodeSDK::Type::watchOS:
1493
+ use_current_os_version = get_host_os () == llvm::Triple::WatchOS;
1499
1494
break ;
1500
1495
default :
1501
1496
break ;
@@ -1515,24 +1510,49 @@ void PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
1515
1510
}
1516
1511
}
1517
1512
// Only add the version-min options if we got a version from somewhere
1518
- if (!version.empty ()) {
1513
+ if (!version.empty () && sdk_type != XcodeSDK::Type::Linux) {
1514
+ #define OPTION (PREFIX, NAME, VAR, ...) \
1515
+ const char *opt_##VAR = NAME; \
1516
+ (void )opt_##VAR;
1517
+ #include " clang/Driver/Options.inc"
1518
+ #undef OPTION
1519
+ minimum_version_option << ' -' ;
1519
1520
switch (sdk_type) {
1520
- case XcodeSDK::Type::iPhoneOS:
1521
- minimum_version_option.PutCString (" -mios-version-min=" );
1522
- minimum_version_option.PutCString (version.getAsString ());
1521
+ case XcodeSDK::Type::MacOSX:
1522
+ minimum_version_option << opt_mmacosx_version_min_EQ;
1523
1523
break ;
1524
1524
case XcodeSDK::Type::iPhoneSimulator:
1525
- minimum_version_option.PutCString (" -mios-simulator-version-min=" );
1526
- minimum_version_option.PutCString (version.getAsString ());
1525
+ minimum_version_option << opt_mios_simulator_version_min_EQ;
1527
1526
break ;
1528
- case XcodeSDK::Type::MacOSX:
1529
- minimum_version_option.PutCString (" -mmacosx-version-min=" );
1530
- minimum_version_option.PutCString (version.getAsString ());
1527
+ case XcodeSDK::Type::iPhoneOS:
1528
+ minimum_version_option << opt_mios_version_min_EQ;
1531
1529
break ;
1532
- default :
1533
- llvm_unreachable (" unsupported sdk" );
1530
+ case XcodeSDK::Type::AppleTVSimulator:
1531
+ minimum_version_option << opt_mtvos_simulator_version_min_EQ;
1532
+ break ;
1533
+ case XcodeSDK::Type::AppleTVOS:
1534
+ minimum_version_option << opt_mtvos_version_min_EQ;
1535
+ break ;
1536
+ case XcodeSDK::Type::WatchSimulator:
1537
+ minimum_version_option << opt_mwatchos_simulator_version_min_EQ;
1538
+ break ;
1539
+ case XcodeSDK::Type::watchOS:
1540
+ minimum_version_option << opt_mwatchos_version_min_EQ;
1541
+ break ;
1542
+ case XcodeSDK::Type::bridgeOS:
1543
+ case XcodeSDK::Type::Linux:
1544
+ case XcodeSDK::Type::unknown:
1545
+ if (lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_HOST)) {
1546
+ XcodeSDK::Info info;
1547
+ info.type = sdk_type;
1548
+ LLDB_LOGF (lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_HOST),
1549
+ " Clang modules on %s are not supported" ,
1550
+ XcodeSDK::GetCanonicalName (info).c_str ());
1551
+ }
1552
+ return ;
1534
1553
}
1535
- options.push_back (std::string (minimum_version_option.GetString ()));
1554
+ minimum_version_option << version.getAsString ();
1555
+ options.emplace_back (std::string (minimum_version_option.GetString ()));
1536
1556
}
1537
1557
1538
1558
FileSpec sysroot_spec;
0 commit comments