Skip to content

Commit

Permalink
Replace manually maintained code about frameworks with generated code. (
Browse files Browse the repository at this point in the history
dotnet#10218)

* [src] Generate the string constants for each framework from our list of frameworks.

This makes it less error prone to add new frameworks (one less place to add
them), and easier to add new platforms (only one place to make sure the list
of frameworks is correct).

This also revelead a few issues in our list of frameworks (missing frameworks,
frameworks that have been moved, etc.), which have been fixed.

* [mmp] Generate the library path -> namespace map for the linker to optimize away dlopen statements.

* Fix indentation to be just as broken as the surrounding indentation.

* Remove unused Cecil reference.

* Fix c&p oversight.

* Adjust more Mac Catalyst API.

* CFNetwork is its own top-level framework.
  • Loading branch information
rolfbjarne authored Dec 15, 2020
1 parent d768431 commit bf84732
Show file tree
Hide file tree
Showing 13 changed files with 220 additions and 621 deletions.
139 changes: 7 additions & 132 deletions src/Constants.iOS.cs.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,141 +8,16 @@ namespace ObjCRuntime {
internal const string Revision = "@REVISION@";
public const string SdkVersion = "@IOS_SDK_VERSION@";

public const string AddressBookLibrary = "/System/Library/Frameworks/AddressBook.framework/AddressBook";
public const string AddressBookUILibrary = "/System/Library/Frameworks/AddressBookUI.framework/AddressBookUI";
public const string AudioToolboxLibrary = "/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox";
public const string CoreGraphicsLibrary = "/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics";
public const string CoreFoundationLibrary = "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation";
public const string FoundationLibrary = "/System/Library/Frameworks/Foundation.framework/Foundation";
public const string CFNetworkLibrary = "/System/Library/Frameworks/CFNetwork.framework/CFNetwork";
public const string OpenGLESLibrary = "/System/Library/Frameworks/OpenGLES.framework/OpenGLES";
public const string QuartzLibrary = "/System/Library/Frameworks/QuartzCore.framework/QuartzCore";
public const string CoreAnimationLibrary = "/System/Library/Frameworks/QuartzCore.framework/QuartzCore";
public const string UIKitLibrary = "/System/Library/Frameworks/UIKit.framework/UIKit";
public const string SystemConfigurationLibrary = "/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration";
public const string MediaPlayerLibrary = "/System/Library/Frameworks/MediaPlayer.framework/MediaPlayer";
public const string AVFoundationLibrary = "/System/Library/Frameworks/AVFoundation.framework/AVFoundation";
public const string CoreLocationLibrary = "/System/Library/Frameworks/CoreLocation.framework/CoreLocation";
public const string SecurityLibrary = "/System/Library/Frameworks/Security.framework/Security";
public const string CoreTextLibrary = "/System/Library/Frameworks/CoreText.framework/CoreText";
public const string iAdLibrary = "/System/Library/Frameworks/iAd.framework/iAd";
public const string CoreTelephonyLibrary = "/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony";
public const string CoreMediaLibrary = "/System/Library/Frameworks/CoreMedia.framework/CoreMedia";
public const string MapKitLibrary = "/System/Library/Frameworks/MapKit.framework/MapKit";
public const string GameKitLibrary = "/System/Library/Frameworks/GameKit.framework/GameKit";
public const string EventKitLibrary = "/System/Library/Frameworks/EventKit.framework/EventKit";
public const string EventKitUILibrary = "/System/Library/Frameworks/EventKitUI.framework/EventKitUI";
public const string ImageIOLibrary = "/System/Library/Frameworks/ImageIO.framework/ImageIO";
public const string AssetsLibraryLibrary = "/System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary";
public const string CoreVideoLibrary = "/System/Library/Frameworks/CoreVideo.framework/CoreVideo";
public const string AccountsLibrary = "/System/Library/Frameworks/Accounts.framework/Accounts";
public const string CoreDataLibrary = "/System/Library/Frameworks/CoreData.framework/CoreData";
public const string CoreImageLibrary = "/System/Library/Frameworks/CoreImage.framework/CoreImage";
public const string GLKitLibrary = "/System/Library/Frameworks/GLKit.framework/GLKit";
public const string MessageUILibrary = "/System/Library/Frameworks/MessageUI.framework/MessageUI";
public const string CoreBluetoothLibrary = "/System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth";
public const string CoreMidiLibrary = "/System/Library/Frameworks/CoreMIDI.framework/CoreMIDI";
public const string QuickLookLibrary = "/System/Library/Frameworks/QuickLook.framework/QuickLook";
public const string NewsstandKitLibrary = "/System/Library/Frameworks/NewsstandKit.framework/NewsstandKit";
public const string ExternalAccessoryLibrary = "/System/Library/Frameworks/ExternalAccessory.framework/ExternalAccessory";
public const string MobileCoreServicesLibrary = "/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices";
public const string CoreServicesLibrary = "/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices";
public const string StoreKitLibrary = "/System/Library/Frameworks/StoreKit.framework/StoreKit";
public const string AudioUnitLibrary = "/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox";
public const string AccelerateImageLibrary = "/System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/vImage";
// iOS 6
public const string AdSupportLibrary = "/System/Library/Frameworks/AdSupport.framework/AdSupport";
public const string MediaToolboxLibrary = "/System/Library/Frameworks/MediaToolbox.framework/MediaToolbox";
public const string PassKitLibrary = "/System/Library/Frameworks/PassKit.framework/PassKit";
public const string SocialLibrary = "/System/Library/Frameworks/Social.framework/Social";
// iOS 7
public const string JavaScriptCoreLibrary = "/System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore";
public const string GameControllerLibrary = "/System/Library/Frameworks/GameController.framework/GameController";
public const string MultipeerConnectivityLibrary = "/System/Library/Frameworks/MultipeerConnectivity.framework/MultipeerConnectivity";
public const string SpriteKitLibrary = "/System/Library/Frameworks/SpriteKit.framework/SpriteKit";
public const string SafariServicesLibrary = "/System/Library/Frameworks/SafariServices.framework/SafariServices";
public const string MediaAccessibilityLibrary = "/System/Library/Frameworks/MediaAccessibility.framework/MediaAccessibility";
// iOS 8
public const string HealthKitLibrary = "/System/Library/Frameworks/HealthKit.framework/HealthKit";
public const string HomeKitLibrary = "/System/Library/Frameworks/HomeKit.framework/HomeKit";
public const string PushKitLibrary = "/System/Library/Frameworks/PushKit.framework/PushKit";
public const string LocalAuthenticationLibrary = "/System/Library/Frameworks/LocalAuthentication.framework/LocalAuthentication";
public const string PhotosLibrary = "/System/Library/Frameworks/Photos.framework/Photos";
public const string PhotosUILibrary = "/System/Library/Frameworks/PhotosUI.framework/PhotosUI";
public const string MetalLibrary = "/System/Library/Frameworks/Metal.framework/Metal";
public const string CloudKitLibrary = "/System/Library/Frameworks/CloudKit.framework/CloudKit";
public const string SceneKitLibrary = "/System/Library/Frameworks/SceneKit.framework/SceneKit";
public const string AVKitLibrary = "/System/Library/Frameworks/AVKit.framework/AVKit";
public const string CoreAudioKitLibrary = "/System/Library/Frameworks/CoreAudioKit.framework/CoreAudioKit";
public const string CoreMotionLibrary = "/System/Library/Frameworks/CoreMotion.framework/CoreMotion";
public const string VideoToolboxLibrary = "/System/Library/Frameworks/VideoToolbox.framework/VideoToolbox";
public const string NetworkLibrary = "/System/Library/Frameworks/Network.framework/Network";
public const string NetworkExtensionLibrary = "/System/Library/Frameworks/NetworkExtension.framework/NetworkExtension";
public const string WebKitLibrary = "/System/Library/Frameworks/WebKit.framework/WebKit";
public const string QuartzLibrary = "/System/Library/Frameworks/QuartzCore.framework/QuartzCore";

// iOS 8.2
#if !XAMCORE_4_0
// Apple removed the WatchKit framework from iOS
public const string WatchKitLibrary = "/System/Library/Frameworks/WatchKit.framework/WatchKit";
// iOS 9.0
public const string ReplayKitLibrary = "/System/Library/Frameworks/ReplayKit.framework/ReplayKit";
public const string ContactsLibrary = "/System/Library/Frameworks/Contacts.framework/Contacts";
public const string ContactsUILibrary = "/System/Library/Frameworks/ContactsUI.framework/ContactsUI";
public const string CoreSpotlightLibrary = "/System/Library/Frameworks/CoreSpotlight.framework/CoreSpotlight";
public const string WatchConnectivityLibrary = "/System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity";
public const string MetalPerformanceShadersLibrary = "/System/Library/Frameworks/MetalPerformanceShaders.framework/MetalPerformanceShaders";
public const string MetalKitLibrary = "/System/Library/Frameworks/MetalKit.framework/MetalKit";
public const string ModelIOLibrary = "/System/Library/Frameworks/ModelIO.framework/ModelIO";
public const string GameplayKitLibrary = "/System/Library/Frameworks/GameplayKit.framework/GameplayKit";
#endif

// iOS 9
public const string libcompressionLibrary = "/usr/lib/libcompression.dylib";
// iOS 9.3
public const string HealthKitUILibrary = "/System/Library/Frameworks/HealthKitUI.framework/HealthKitUI";
// iOS 10.0
public const string CallKitLibrary = "/System/Library/Frameworks/CallKit.framework/CallKit";
public const string MessagesLibrary = "/System/Library/Frameworks/Messages.framework/Messages";
public const string SpeechLibrary = "/System/Library/Frameworks/Speech.framework/Speech";
public const string VideoSubscriberAccountLibrary = "/System/Library/Frameworks/VideoSubscriberAccount.framework/VideoSubscriberAccount";
public const string UserNotificationsLibrary = "/System/Library/Frameworks/UserNotifications.framework/UserNotifications";
public const string UserNotificationsUILibrary = "/System/Library/Frameworks/UserNotificationsUI.framework/UserNotificationsUI";
public const string IntentsLibrary = "/System/Library/Frameworks/Intents.framework/Intents";
public const string IntentsUILibrary = "/System/Library/Frameworks/IntentsUI.framework/IntentsUI";
// iOS 11.0
public const string ARKitLibrary = "/System/Library/Frameworks/ARKit.framework/ARKit";
public const string CoreNFCLibrary = "/System/Library/Frameworks/CoreNFC.framework/CoreNFC";
public const string DeviceCheckLibrary = "/System/Library/Frameworks/DeviceCheck.framework/DeviceCheck";
public const string IdentityLookupLibrary = "/System/Library/Frameworks/IdentityLookup.framework/IdentityLookup";
public const string CoreMLLibrary = "/System/Library/Frameworks/CoreML.framework/CoreML";
public const string VisionLibrary = "/System/Library/Frameworks/Vision.framework/Vision";
public const string FileProviderLibrary = "/System/Library/Frameworks/FileProvider.framework/FileProvider";
public const string FileProviderUILibrary = "/System/Library/Frameworks/FileProviderUI.framework/FileProviderUI";
public const string IOSurfaceLibrary = "/System/Library/Frameworks/IOSurface.framework/IOSurface";
public const string PdfKitLibrary = "/System/Library/Frameworks/PDFKit.framework/PDFKit";
// iOS 11.3
public const string BusinessChatLibrary = "/System/Library/Frameworks/BusinessChat.framework/BusinessChat";
// iOS 11.4
public const string ClassKitLibrary = "/System/Library/Frameworks/ClassKit.framework/ClassKit";
// iOS 12.0
public const string AuthenticationServicesLibrary = "/System/Library/Frameworks/AuthenticationServices.framework/AuthenticationServices";
public const string CarPlayLibrary = "/System/Library/Frameworks/CarPlay.framework/CarPlay";
public const string IdentityLookupUILibrary = "/System/Library/Frameworks/IdentityLookupUI.framework/IdentityLookupUI";
public const string NaturalLanguageLibrary = "/System/Library/Frameworks/NaturalLanguage.framework/NaturalLanguage";
// iOS 13.0
public const string BackgroundTasksLibrary = "/System/Library/Frameworks/BackgroundTasks.framework/BackgroundTasks";
public const string CoreHapticsLibrary = "/System/Library/Frameworks/CoreHaptics.framework/CoreHaptics";
public const string LinkPresentationLibrary = "/System/Library/Frameworks/LinkPresentation.framework/LinkPresentation";
public const string MetricKitLibrary = "/System/Library/Frameworks/MetricKit.framework/MetricKit";
public const string PencilKitLibrary = "/System/Library/Frameworks/PencilKit.framework/PencilKit";
public const string QuickLookThumbnailingLibrary = "/System/Library/Frameworks/QuickLookThumbnailing.framework/QuickLookThumbnailing";
public const string VisionKitLibrary = "/System/Library/Frameworks/VisionKit.framework/VisionKit";
public const string SoundAnalysisLibrary = "/System/Library/Frameworks/SoundAnalysis.framework/SoundAnalysis";
// iOS 13.4
public const string AutomaticAssessmentConfigurationLibrary = "/System/Library/Frameworks/AutomaticAssessmentConfiguration.framework/AutomaticAssessmentConfiguration";
// iOS 14.0
public const string AccessibilityLibrary = "/System/Library/Frameworks/Accessibility.framework/Accessibility";
public const string AppClipLibrary = "/System/Library/Frameworks/AppClip.framework/AppClip";
public const string AppTrackingTransparencyLibrary = "/System/Library/Frameworks/AppTrackingTransparency.framework/AppTrackingTransparency";
public const string MediaSetupLibrary = "/System/Library/Frameworks/MediaSetup.framework/MediaSetup";
public const string MLComputeLibrary = "/System/Library/Frameworks/MLCompute.framework/MLCompute";
public const string NearbyInteractionLibrary = "/System/Library/Frameworks/NearbyInteraction.framework/NearbyInteraction";
public const string ScreenTimeLibrary = "/System/Library/Frameworks/ScreenTime.framework/ScreenTime";
public const string SensorKitLibrary = "/System/Library/Frameworks/SensorKit.framework/SensorKit";
public const string UniformTypeIdentifiersLibrary = "/System/Library/Frameworks/UniformTypeIdentifiers.framework/UniformTypeIdentifiers";
}
}
Loading

0 comments on commit bf84732

Please sign in to comment.