diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6e9b8a49..9d59f4a65 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -298,13 +298,13 @@ jobs: header-translator: name: Verify header translator output - runs-on: macos-26 # Aarch64 + runs-on: xcode-27 # Aarch64 needs: - fmt - lint env: - DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer + DEVELOPER_DIR: /Applications/Xcode_27.0.app/Contents/Developer steps: - uses: actions/checkout@v6 diff --git a/Cargo.lock b/Cargo.lock index ac9287ac7..102f4a50d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1475,6 +1475,7 @@ dependencies = [ "objc2-media-toolbox", "objc2-quartz-core", "objc2-uniform-type-identifiers", + "objc2-video-toolbox", ] [[package]] @@ -1558,6 +1559,7 @@ dependencies = [ "objc2", "objc2-av-foundation", "objc2-core-foundation", + "objc2-core-video", "objc2-foundation", "objc2-quartz-core", "objc2-ui-kit", @@ -3089,6 +3091,7 @@ dependencies = [ "dispatch2", "libc", "objc2", + "objc2-app-kit", "objc2-av-foundation", "objc2-core-foundation", "objc2-core-graphics", @@ -3408,6 +3411,7 @@ dependencies = [ "objc2-core-graphics", "objc2-core-image", "objc2-core-location", + "objc2-core-motion", "objc2-core-text", "objc2-foundation", "objc2-quartz-core", @@ -3485,6 +3489,7 @@ dependencies = [ "objc2-app-kit", "objc2-core-foundation", "objc2-foundation", + "objc2-security", ] [[package]] diff --git a/crates/dispatch2/src/lib.rs b/crates/dispatch2/src/lib.rs index b54b642f8..82d89ece2 100644 --- a/crates/dispatch2/src/lib.rs +++ b/crates/dispatch2/src/lib.rs @@ -25,6 +25,7 @@ #![warn(clippy::missing_safety_doc)] // Update in Cargo.toml as well. #![doc(html_root_url = "https://docs.rs/dispatch2/0.3.1")] +#![recursion_limit = "256"] #[cfg(not(feature = "alloc"))] compile_error!("The `alloc` feature currently must be enabled."); diff --git a/crates/header-translator/configs/skipped.toml b/crates/header-translator/configs/skipped.toml index 305997e8d..df35f5911 100644 --- a/crates/header-translator/configs/skipped.toml +++ b/crates/header-translator/configs/skipped.toml @@ -32,6 +32,9 @@ ActivityKit = "Swift-only" AdAttributionKit = "Swift-only" AlarmKit = "Mostly Swift-only" AppIntents = "Swift-only" +AppIntentsTesting = "Swift- and Developer-only" +AppIntentsTypeSupport = "Swift-only" +AppManagedFeatures = "Swift-only" AppMigrationKit = "Swift-only" Assignables = "Swift-only" AudioAccessoryKit = "Swift-only" @@ -41,16 +44,20 @@ Charts = "Swift-only" ClassKitUI = "Swift-only" Combine = "Swift-only" ContactProvider = "Mostly Swift-only" +CoreAI = "Swift-only" CoreHID = "Swift-only" CoreTransferable = "Swift-only" +CrashReportExtension = "Swift-only" CreateML = "Swift-only" CreateMLComponents = "Swift-only" CryptoKit = "Swift-only" DeclaredAgeRange = "Swift-only" DeveloperToolsSupport = "Swift-only" DeviceActivity = "Swift-only" +DiskImageKit = "Swift-only" DockKit = "Swift-only" EnergyKit = "Swift-only" +Evaluations = "Swift- and Developer-only" ExtensionFoundation = "Swift-only" FamilyControls = "Swift-only" FinanceKit = "Swift-only" @@ -73,7 +80,12 @@ ManagedSettings = "Swift-only" ManagedSettingsUI = "Swift-only" MarketplaceKit = "Swift-only" MatterSupport = "Swift-only" +MediaDevice = "Swift-only" +MediaIntelligence = "Swift-only" +MediaIntents = "Swift-only" MusicKit = "Swift-only" +MusicUnderstanding = "Swift-only" +NowPlaying = "Swift-only" PaperKit = "Swift-only" PermissionKit = "Swift-only" ProximityReader = "Swift-only" @@ -83,6 +95,8 @@ RelevanceKit = "Swift-only" RoomPlan = "Swift-only" SecureElementCredential = "Swift-only" ServicesAccountLinking = "Effectively Swift-only" +SpatialPreview = "Swift-only" +SuggestedActions = "Swift-only" SwiftData = "Swift-only" SwiftUI = "Swift-only" SwiftUICore = "Swift-only" @@ -93,6 +107,8 @@ Testing = "Swift-only" TipKit = "Swift-only" Translation = "Swift-only" TranslationUIProvider = "Swift-only" +TrustInsights = "Swift-only" +USDKit = "Swift-only" VisionEntitlementServices = "Mostly Swift-only" VisionKit = "Swift-only" VisualIntelligence = "Swift-only" @@ -106,6 +122,7 @@ WorkoutKit = "Swift-only" AppleScriptKit = "Basically empty nowadays" # requires !swift AppleScriptObjC = "Basically empty nowadays" Cocoa = "Basically empty nowadays, use AppKit" +ComputeGraph = "Only has C++ and Swift bindings" CoreDisplay = "Basically empty" JavaNativeFoundation = "Basically empty" KernelManagement = "Basically empty" @@ -146,5 +163,10 @@ CoreMIDIServer = "Very deprecated" XcodeKit = "TODO. Developer-only" StoreKitTest = "TODO. Developer-only" +AccessoryAccess = "TODO" +AVSystemRouting = "TODO" +LinkSecurity = "TODO" +StateReporting = "TODO" + # LiveExecutionResultsLogger = "Removed in Xcode 26" # AGL = "Removed in Xcode 26" diff --git a/crates/header-translator/src/unexposed_attr.rs b/crates/header-translator/src/unexposed_attr.rs index ad2b917af..8a1531e9b 100644 --- a/crates/header-translator/src/unexposed_attr.rs +++ b/crates/header-translator/src/unexposed_attr.rs @@ -378,6 +378,7 @@ impl UnexposedAttr { | "ATS_UNAVAILABLE" | "BROWSERENGINE_TEXTINPUT_AVAILABILITY" | "BROWSERENGINE_ACCESSIBILITY_AVAILABILITY" + | "BROWSERENGINE_ACCESSIBILITY_AVAILABILITY_27" | "BROWSERENGINE_ACCESSIBILITY_MARKER_AVAILABILITY" | "BROWSERENGINE_ACCESSIBILITY_REMOTE_AVAILABILITY" | "CA_CANONICAL_DEPRECATED" @@ -400,6 +401,8 @@ impl UnexposedAttr { | "EN_API_AVAILABLE_V5" | "EN_API_AVAILABLE_EXPORT" | "EN_API_AVAILABLE_EXPORT_V2" + | "FSKIT_API_INTRODUCED_V1_DEPRECATED_V3_WITH_REPLACEMENT" + | "FILE_PROVIDER_AVAILABILITY_NAMESPACE_POLICY" | "GK_BASE_AVAILABILITY" | "GK_BASE_AVAILABILITY_2" | "GK_BASE_AVAILABILITY_3" @@ -409,6 +412,7 @@ impl UnexposedAttr { | "INTERAPP_AUDIO_DEPRECATED" | "MD_AVAIL" | "MD_AVAIL_LEOPARD" + | "MHDR_AVAILABILITY_v1" | "MIDI_API_UNAVAILABLE_NON_MACOS" | "MIDI_AVAILABLE_UMP1_1" | "MIDICI1_0_AVAILABILITY" @@ -419,6 +423,7 @@ impl UnexposedAttr { | "MIDICI1_1" | "MIDICI1_2" | "MIDINETWORKSESSION_AVAILABLE" + | "MPSF_AVAILABILITY_v1" | "NS_CLASS_AVAILABLE" | "UT_AVAILABLE_BEGIN" | "MP_DEPRECATED_BEGIN" @@ -473,6 +478,10 @@ impl UnexposedAttr { // Irrelevant, we don't emit dispatch_object_t anyhow. "DISPATCH_TRANSPARENT_UNION" => None, "NS_NO_TAIL_CALL" => None, + // TODO: Use this to map as `BlockOnce`? Probably not strong + // enough to be a soundness guarantee. + // + "FSKIT_CALLED_ONCE" => None, _ => return Err(()), }) } diff --git a/crates/objc2/src/lib.rs b/crates/objc2/src/lib.rs index f8bd2817d..e31122c24 100644 --- a/crates/objc2/src/lib.rs +++ b/crates/objc2/src/lib.rs @@ -63,17 +63,17 @@ //! //! ## Supported operating systems //! -//! - macOS: `10.12-26.5` -//! - iOS: `10.0-26.5` (including iPadOS and Mac Catalyst) -//! - tvOS: `10.0-26.5` -//! - watchOS: `5.0-26.5` -//! - visionOS: `1.0-26.5` +//! - macOS: `10.12-27.0` +//! - iOS: `10.0-27.0` (including iPadOS and Mac Catalyst) +//! - tvOS: `10.0-27.0` +//! - watchOS: `5.0-27.0` +//! - visionOS: `1.0-27.0` //! //! The minimum versions are the same as those supported by `rustc`. Higher //! versions will also work, but the framework crates will not have bindings //! available for newer APIs. //! -//! The framework bindings are generated from the SDKs in Xcode 26.6. The +//! The framework bindings are generated from the SDKs in Xcode 27.0. The //! Xcode version are updated usually within a week of [GitHub Actions] //! supporting the new Xcode version, and we try to schedule crate releases //! such that align fairly closely with Xcode updates. We only support stable diff --git a/crates/objc2/src/topics/FRAMEWORKS_CHANGELOG.md b/crates/objc2/src/topics/FRAMEWORKS_CHANGELOG.md index 59ce5f8f6..68f1858a6 100644 --- a/crates/objc2/src/topics/FRAMEWORKS_CHANGELOG.md +++ b/crates/objc2/src/topics/FRAMEWORKS_CHANGELOG.md @@ -32,7 +32,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * Added missing `AudioToolbox` unions and functions using these. ### Changed -* Updated SDK from Xcode 26.0.1 to 26.6. +* Updated SDK from Xcode 26.0.1 to 27.0. View the release notes to learn more details: - [26.1.1](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_1-release-notes) @@ -42,6 +42,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - [26.4.1](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_4_1-release-notes) - [26.5](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_5-release-notes) - [26.6](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_6-release-notes) + - [27.0](https://developer.apple.com/documentation/xcode-release-notes/xcode-27-release-notes) Breaking changes are noted elsewhere in this changelog entry. * Changed the value of `kUSBHostPortPropertyPortNumber`. @@ -67,6 +68,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `CVImageBuffer`, `CVPixelBuffer`, `CVOpenGLBuffer`, `CVOpenGLTexture` and `CVMetalTexture`. - `SecTransform` and `SecTransformAttribute`. - `SCBondInterface` and `SCVLANInterface`. +* **BREAKING**: Renamed `THClient::enableCredentialSharingMode` to `enableCredentialSharingModeWithExtendedPANId_completion`. +* **BREAKING**: Split parts of `FSVolumeOperations` into `FSVolumeCommonOperations`. ### Removed * **BREAKING**: Removed a lot of deprecated function aliases. Use the methods instead. @@ -80,8 +83,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * **BREAKING**: Removed unavailable methods. * **BREAKING**: Removed `CSSearchableItemAttributeSet::moveFrom`. * **BREAKING**: Removed various `kUSBHostBillboardDeviceProperty*` consts. +* **BREAKING**: Removed `kUSBHostPortPropertyUsbCPortNumber` const. * **BREAKING**: Removed `CFGetRetainCount`, `CFEqual` and `CFHash`; these are now only available directly on `CFType`. -* **BREAKING**: Remove inherent `initWithCoder:` methods, these are available on `NSCoding`. +* **BREAKING**: Removed inherent `initWithCoder:` methods, these are available on `NSCoding`. +* **BREAKING**: Removed `drawWithRect_options_attributes` and `boundingRectWithSize_options_attributes` AppKit extension methods on `NSString`. +* **BREAKING**: Removed `loadBroadcastingApplicationInfoWithCompletion` and `completeRequestWithBroadcastURL_setupInfo` ReplayKit extension methods on `NSExtensionContext`. +* **BREAKING**: Removed `FSDirectoryVerifier` and `ParavirtualizedGraphicsVersion*`. +* **BREAKING**: Removed `NSAttributedStringNSStringDrawingDeprecated`. ### Fixed * Fixed the encoding check in `NSUUID` methods. @@ -98,6 +106,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * **BREAKING**: `UIApplication::sharedApplication` now returns an `Option` (it returns `None` if called before `UIApplication::main()`). * **BREAKING**: Improved support for unsized structs. * Improved documentation for enum variants. +* Fixed a bunch of thread-safety issues in `objc2-avf-audio`. ## [0.3.2] - 2025-10-04 [0.3.2]: https://github.com/madsmtm/objc2/compare/frameworks-0.3.1...frameworks-0.3.2 diff --git a/crates/objc2/src/topics/frameworks_list_unsupported.md b/crates/objc2/src/topics/frameworks_list_unsupported.md index dfd6ecf41..0850022e5 100644 --- a/crates/objc2/src/topics/frameworks_list_unsupported.md +++ b/crates/objc2/src/topics/frameworks_list_unsupported.md @@ -1,6 +1,8 @@ | Framework | Why is this unsupported? | | --- | --- | +| `AVSystemRouting` | TODO. | | `Accelerate` | Very C-centric, hard for us to map. | +| `AccessoryAccess` | TODO. | | `AccessoryLiveActivities` | Swift-only. | | `AccessoryNotifications` | Swift-only. | | `AccessoryTransportExtension` | Swift-only. | @@ -10,6 +12,9 @@ | `AddressBookUI` | Deprecated, use Contacts instead. | | `AlarmKit` | Mostly Swift-only. | | `AppIntents` | Swift-only. | +| `AppIntentsTesting` | Swift- and Developer-only. | +| `AppIntentsTypeSupport` | Swift-only. | +| `AppManagedFeatures` | Swift-only. | | `AppMigrationKit` | Swift-only. | | `AppleScriptKit` | Basically empty nowadays. | | `AppleScriptObjC` | Basically empty nowadays. | @@ -25,11 +30,14 @@ | `ClassKitUI` | Swift-only. | | `Cocoa` | Basically empty nowadays, use AppKit. | | `Combine` | Swift-only. | +| `ComputeGraph` | Only has C++ and Swift bindings. | | `ContactProvider` | Mostly Swift-only. | +| `CoreAI` | Swift-only. | | `CoreDisplay` | Basically empty. | | `CoreHID` | Swift-only. | | `CoreMIDIServer` | Very deprecated. | | `CoreTransferable` | Swift-only. | +| `CrashReportExtension` | Swift-only. | | `CreateML` | Swift-only. | | `CreateMLComponents` | Swift-only. | | `CryptoKit` | Swift-only. | @@ -40,9 +48,11 @@ | `DirectoryService` | Deprecated, use OpenDirectory instead. | | `DiscRecording` | Deprecated, use AVKit/AVFoundation instead. | | `DiscRecordingUI` | Deprecated, use AVKit/AVFoundation instead. | +| `DiskImageKit` | Swift-only. | | `DockKit` | Swift-only. | | `DriverKit` | Uses C++ classes. | | `EnergyKit` | Swift-only. | +| `Evaluations` | Swift- and Developer-only. | | `ExtensionFoundation` | Swift-only. | | `FamilyControls` | Swift-only. | | `FinanceKit` | Swift-only. | @@ -70,6 +80,7 @@ | `KernelManagement` | Basically empty. | | `LDAP` | Basically empty. | | `LightweightCodeRequirements` | Swift-only. | +| `LinkSecurity` | TODO. | | `LiveCommunicationKit` | Swift-only. | | `LockedCameraCapture` | Swift-only. | | `ManagedApp` | Swift-only. | @@ -79,12 +90,17 @@ | `MarketplaceKit` | Swift-only. | | `Matter` | Mostly available [here](https://github.com/project-chip/connectedhomeip). | | `MatterSupport` | Swift-only. | +| `MediaDevice` | Swift-only. | +| `MediaIntelligence` | Swift-only. | +| `MediaIntents` | Swift-only. | | `MediaLibrary` | Deprecated, use PhotoKit instead. | | `Message` | Basically empty. | | `MetalPerformancePrimitives` | Header-only framework used in Metal shaders. | | `MobileCoreServices` | Deprecated, use CoreServices + UniformTypeIdentifiers instead. | | `MusicKit` | Swift-only. | +| `MusicUnderstanding` | Swift-only. | | `NetFS` | Deprecated, use macFUSE or FSKit instead (probably). | +| `NowPlaying` | Swift-only. | | `OpenAL` | Very C-centric, use newer Audio frameworks instead. | | `OpenCL` | Very C-centric and old. | | `PCSC` | Too low-level, consider crates like `pcsc` instead. | @@ -101,9 +117,12 @@ | `Ruby` | Very C-centric and old. | | `SecureElementCredential` | Swift-only. | | `ServicesAccountLinking` | Effectively Swift-only. | +| `SpatialPreview` | Swift-only. | +| `StateReporting` | TODO. | | `StickerFoundation` | Basically empty. | | `StickerKit` | Basically empty. | | `StoreKitTest` | TODO. Developer-only. | +| `SuggestedActions` | Swift-only. | | `SwiftData` | Swift-only. | | `SwiftUI` | Swift-only. | | `SwiftUICore` | Swift-only. | @@ -119,7 +138,9 @@ | `Tk` | Very C-centric and old. | | `Translation` | Swift-only. | | `TranslationUIProvider` | Swift-only. | +| `TrustInsights` | Swift-only. | | `Twitter` | Deprecated, use Social instead. | +| `USDKit` | Swift-only. | | `VideoDecodeAcceleration` | Very C-centric and old. | | `VisionEntitlementServices` | Mostly Swift-only. | | `VisionKit` | Swift-only. | diff --git a/crates/test-frameworks/Cargo.toml b/crates/test-frameworks/Cargo.toml index ab6edd32a..562593ba7 100644 --- a/crates/test-frameworks/Cargo.toml +++ b/crates/test-frameworks/Cargo.toml @@ -205,7 +205,7 @@ test-frameworks = [ ] objc2-ar-kit = ["dep:objc2-ar-kit"] objc2-avf-audio = ["dep:objc2-avf-audio", "objc2-avf-audio?/objc2-core-media", "objc2-avf-audio?/objc2-core-midi"] -objc2-av-foundation = ["dep:objc2-av-foundation", "objc2-av-foundation?/objc2-core-media", "objc2-av-foundation?/objc2-uniform-type-identifiers"] +objc2-av-foundation = ["dep:objc2-av-foundation", "objc2-av-foundation?/objc2-core-media", "objc2-av-foundation?/objc2-uniform-type-identifiers", "objc2-av-foundation?/objc2-video-toolbox"] objc2-av-kit = ["dep:objc2-av-kit", "objc2-av-kit?/objc2-av-routing"] objc2-av-routing = ["dep:objc2-av-routing"] objc2-accessibility = ["dep:objc2-accessibility"] diff --git a/crates/test-ui/ui/downcast_generic.stderr b/crates/test-ui/ui/downcast_generic.stderr index c0a40c88c..8a0fc57cd 100644 --- a/crates/test-ui/ui/downcast_generic.stderr +++ b/crates/test-ui/ui/downcast_generic.stderr @@ -15,9 +15,9 @@ help: the trait `objc2::downcast::DowncastTarget` is implemented for `NSArray` ::: $WORKSPACE/framework-crates/objc2-foundation/src/generated/NSArray.rs | | / extern_class!( - | | /// ************** Immutable Array *************** + | | /// A static ordered collection of objects. | | /// - | | /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nsarray?language=objc) + | | /// You can use this type in Swift instead of an `Array` constant in cases that require reference semantics. ... | | | pub struct NSArray; | | ); diff --git a/crates/test-ui/ui/downcast_generic_ref.stderr b/crates/test-ui/ui/downcast_generic_ref.stderr index b222440bb..70dc7abc0 100644 --- a/crates/test-ui/ui/downcast_generic_ref.stderr +++ b/crates/test-ui/ui/downcast_generic_ref.stderr @@ -15,9 +15,9 @@ help: the trait `objc2::downcast::DowncastTarget` is implemented for `NSArray` ::: $WORKSPACE/framework-crates/objc2-foundation/src/generated/NSArray.rs | | / extern_class!( - | | /// ************** Immutable Array *************** + | | /// A static ordered collection of objects. | | /// - | | /// See also [Apple's documentation](https://developer.apple.com/documentation/foundation/nsarray?language=objc) + | | /// You can use this type in Swift instead of an `Array` constant in cases that require reference semantics. ... | | | pub struct NSArray; | | ); diff --git a/crates/test-ui/ui/implement_protocol_missing_super.stderr b/crates/test-ui/ui/implement_protocol_missing_super.stderr index 87516c2a9..3c965adb9 100644 --- a/crates/test-ui/ui/implement_protocol_missing_super.stderr +++ b/crates/test-ui/ui/implement_protocol_missing_super.stderr @@ -30,10 +30,12 @@ note: required by a bound in `NSURLSessionDelegate` ::: $WORKSPACE/framework-crates/objc2-foundation/src/generated/NSURLSession.rs | | / extern_protocol!( - | | /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsurlsessiondelegate?language=objc) + | | /// A protocol that defines methods that URL session instances call on their delegates to handle session-level events, like ... + | | /// + | | /// In addition to the methods defined in this protocol, most delegates should also implement some or all of the methods in ... +... | | | pub unsafe trait NSURLSessionDelegate: NSObjectProtocol + Send + Sync { | | -------------------- required by a bound in this trait - | | #[cfg(feature = "NSError")] ... | | | ); | |_- in this macro invocation @@ -71,10 +73,12 @@ note: required by a bound in `NSURLSessionDelegate` ::: $WORKSPACE/framework-crates/objc2-foundation/src/generated/NSURLSession.rs | | / extern_protocol!( - | | /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsurlsessiondelegate?language=objc) + | | /// A protocol that defines methods that URL session instances call on their delegates to handle session-level events, like ... + | | /// + | | /// In addition to the methods defined in this protocol, most delegates should also implement some or all of the methods in ... +... | | | pub unsafe trait NSURLSessionDelegate: NSObjectProtocol + Send + Sync { | | -------------------- required by a bound in this trait - | | #[cfg(feature = "NSError")] ... | | | ); | |_- in this macro invocation @@ -116,10 +120,12 @@ note: required by a bound in `NSURLSessionDelegate` ::: $WORKSPACE/framework-crates/objc2-foundation/src/generated/NSURLSession.rs | | / extern_protocol!( - | | /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsurlsessiondelegate?language=objc) + | | /// A protocol that defines methods that URL session instances call on their delegates to handle session-level events, like ... + | | /// + | | /// In addition to the methods defined in this protocol, most delegates should also implement some or all of the methods in ... +... | | | pub unsafe trait NSURLSessionDelegate: NSObjectProtocol + Send + Sync { | | -------------------- required by a bound in this trait - | | #[cfg(feature = "NSError")] ... | | | ); | |_- in this macro invocation diff --git a/examples/fskit/extension/volume.rs b/examples/fskit/extension/volume.rs index 9c40a34f8..eeb667816 100644 --- a/examples/fskit/extension/volume.rs +++ b/examples/fskit/extension/volume.rs @@ -5,11 +5,13 @@ use objc2::{define_class, msg_send, rc::Retained, AnyThread, Ivars}; use objc2_foundation::{ ns_string, NSError, NSInteger, NSObject, NSObjectProtocol, NSString, NSUUID, }; +#[allow(deprecated)] +use objc2_fs_kit::FSVolumeOperations; use objc2_fs_kit::{ FSBlockDeviceResource, FSDeactivateOptions, FSDirectoryCookie, FSDirectoryEntryPacker, FSDirectoryVerifier, FSFileName, FSItem, FSItemAttributes, FSItemGetAttributesRequest, FSItemID, FSItemSetAttributesRequest, FSItemType, FSStatFSResult, FSSyncFlags, FSTaskOptions, - FSVolume, FSVolumeIdentifier, FSVolumeOperations, FSVolumePathConfOperations, + FSVolume, FSVolumeCommonOperations, FSVolumeIdentifier, FSVolumePathConfOperations, FSVolumeSupportedCapabilities, }; use tracing::trace; @@ -71,7 +73,7 @@ define_class!( } #[allow(non_snake_case)] - unsafe impl FSVolumeOperations for Volume { + unsafe impl FSVolumeCommonOperations for Volume { #[unsafe(method(supportedVolumeCapabilities))] fn supportedVolumeCapabilities(&self) -> Retained { trace!("supportedVolumeCapabilities"); @@ -102,27 +104,6 @@ define_class!( stats } - #[unsafe(method(activateWithOptions:replyHandler:))] - fn activateWithOptions_replyHandler( - &self, - options: &FSTaskOptions, - reply: &block2::SendableBlock<'static, fn(*mut FSItem, *mut NSError)>, - ) { - trace!(taskOptions = ?unsafe { options.taskOptions() }, "activate"); - let item = Item::new(FSItemID::RootDirectory).into_super(); - reply.call(Retained::as_ptr(&item).cast_mut(), null_mut()); - } - - #[unsafe(method(deactivateWithOptions:replyHandler:))] - fn deactivateWithOptions_replyHandler( - &self, - options: FSDeactivateOptions, - reply: &block2::SendableBlock<'static, fn(*mut NSError)>, - ) { - trace!(?options, "deactivate"); - reply.call(null_mut()); - } - #[unsafe(method(mountWithOptions:replyHandler:))] fn mountWithOptions_replyHandler( &self, @@ -149,6 +130,42 @@ define_class!( reply.call(null_mut()); } + #[unsafe(method(reclaimItem:replyHandler:))] + fn reclaimItem_replyHandler( + &self, + item: &FSItem, + reply: &block2::SendableBlock<'static, fn(*mut NSError)>, + ) { + let item = item.downcast_ref::().unwrap(); + trace!(?item, "reclaimItem"); + reply.call(null_mut()); + } + } + + #[allow(non_snake_case)] + #[allow(deprecated)] + unsafe impl FSVolumeOperations for Volume { + #[unsafe(method(activateWithOptions:replyHandler:))] + fn activateWithOptions_replyHandler( + &self, + options: &FSTaskOptions, + reply: &block2::SendableBlock<'static, fn(*mut FSItem, *mut NSError)>, + ) { + trace!(taskOptions = ?unsafe { options.taskOptions() }, "activate"); + let item = Item::new(FSItemID::RootDirectory).into_super(); + reply.call(Retained::as_ptr(&item).cast_mut(), null_mut()); + } + + #[unsafe(method(deactivateWithOptions:replyHandler:))] + fn deactivateWithOptions_replyHandler( + &self, + options: FSDeactivateOptions, + reply: &block2::SendableBlock<'static, fn(*mut NSError)>, + ) { + trace!(?options, "deactivate"); + reply.call(null_mut()); + } + #[unsafe(method(getAttributes:ofItem:replyHandler:))] fn getAttributes_ofItem_replyHandler( &self, @@ -188,17 +205,6 @@ define_class!( reply.call(null_mut(), null_mut(), posix_err(ENOENT)); } - #[unsafe(method(reclaimItem:replyHandler:))] - fn reclaimItem_replyHandler( - &self, - item: &FSItem, - reply: &block2::SendableBlock<'static, fn(*mut NSError)>, - ) { - let item = item.downcast_ref::().unwrap(); - trace!(?item, "reclaimItem"); - reply.call(null_mut()); - } - #[unsafe(method(readSymbolicLink:replyHandler:))] fn readSymbolicLink_replyHandler( &self, diff --git a/examples/metal/caps/main.rs b/examples/metal/caps/main.rs index 4d216d69c..66ad619cf 100644 --- a/examples/metal/caps/main.rs +++ b/examples/metal/caps/main.rs @@ -25,6 +25,7 @@ fn main() { device.maxThreadsPerThreadgroup() ); #[cfg(target_os = "macos")] + #[allow(deprecated)] { println!("Integrated GPU: {:?}", device.isLowPower()); println!("Headless: {:?}", device.isHeadless()); diff --git a/examples/metal/circle/main.rs b/examples/metal/circle/main.rs index d14609c4d..926fdc307 100644 --- a/examples/metal/circle/main.rs +++ b/examples/metal/circle/main.rs @@ -94,6 +94,7 @@ impl Renderer { let vbuf = { let vertex_data = create_vertex_points_for_circle(); + #[allow(deprecated)] unsafe { device.newBufferWithBytes_length_options( NonNull::new(vertex_data.as_ptr().cast_mut().cast()).unwrap(), diff --git a/examples/metal/headless-render/main.rs b/examples/metal/headless-render/main.rs index fb839082e..9b6d732e8 100644 --- a/examples/metal/headless-render/main.rs +++ b/examples/metal/headless-render/main.rs @@ -77,6 +77,7 @@ fn main() { .setLoadAction(MTLLoadAction::DontCare); let blit_encoder = command_buffer.blitCommandEncoder().unwrap(); + #[allow(deprecated)] blit_encoder.synchronizeResource(ProtocolObject::from_ref(&*texture)); blit_encoder.endEncoding(); @@ -160,6 +161,7 @@ fn prepare_pipeline_state( .unwrap() } +#[allow(deprecated)] fn create_vertex_buffer( device: &ProtocolObject, ) -> Retained> { diff --git a/examples/metal/raytracing/geometry.rs b/examples/metal/raytracing/geometry.rs index ca40074b6..e16354609 100644 --- a/examples/metal/raytracing/geometry.rs +++ b/examples/metal/raytracing/geometry.rs @@ -45,10 +45,6 @@ pub struct Triangle { pub colours: [Vec4; 3], } -pub fn get_managed_buffer_storage_mode() -> MTLResourceOptions { - MTLResourceOptions::StorageModeManaged -} - pub struct TriangleGeometry { pub device: Retained>, pub name: String, @@ -181,6 +177,7 @@ impl TriangleGeometry { } impl Geometry for TriangleGeometry { + #[allow(deprecated)] fn upload_to_buffers(&mut self) { unsafe { self.index_buffer = Some( @@ -188,7 +185,7 @@ impl Geometry for TriangleGeometry { .newBufferWithBytes_length_options( NonNull::new(self.indices.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.indices.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) .unwrap(), ); @@ -197,7 +194,7 @@ impl Geometry for TriangleGeometry { .newBufferWithBytes_length_options( NonNull::new(self.vertices.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.vertices.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) .unwrap(), ); @@ -206,7 +203,7 @@ impl Geometry for TriangleGeometry { .newBufferWithBytes_length_options( NonNull::new(self.normals.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.normals.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) .unwrap(), ); @@ -215,7 +212,7 @@ impl Geometry for TriangleGeometry { .newBufferWithBytes_length_options( NonNull::new(self.colours.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.colours.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) .unwrap(), ); @@ -224,7 +221,7 @@ impl Geometry for TriangleGeometry { .newBufferWithBytes_length_options( NonNull::new(self.triangles.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.triangles.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) .unwrap(), ); @@ -374,13 +371,14 @@ impl SphereGeometry { } impl Geometry for SphereGeometry { + #[allow(deprecated)] fn upload_to_buffers(&mut self) { self.sphere_buffer = Some( unsafe { self.device.newBufferWithBytes_length_options( NonNull::new(self.spheres.as_ptr().cast_mut().cast()).unwrap(), size_of_val(self.spheres.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(), @@ -402,7 +400,7 @@ impl Geometry for SphereGeometry { self.device.newBufferWithBytes_length_options( NonNull::new(bounding_boxes.as_ptr().cast_mut().cast()).unwrap(), size_of_val(bounding_boxes.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(), diff --git a/examples/metal/raytracing/main.rs b/examples/metal/raytracing/main.rs index 376e854ad..f912ef945 100644 --- a/examples/metal/raytracing/main.rs +++ b/examples/metal/raytracing/main.rs @@ -27,6 +27,7 @@ pub mod geometry; pub mod renderer; pub mod scene; +#[allow(deprecated)] fn select_device() -> Retained> { let devices = MTLCopyAllDevices(); devices diff --git a/examples/metal/raytracing/renderer.rs b/examples/metal/raytracing/renderer.rs index 566aa6ed0..d0b803f5b 100644 --- a/examples/metal/raytracing/renderer.rs +++ b/examples/metal/raytracing/renderer.rs @@ -27,7 +27,7 @@ use objc2_metal::{ use objc2_quartz_core::CAMetalDrawable; use rand::Rng; -use crate::{camera::Camera, geometry::get_managed_buffer_storage_mode, scene::Scene}; +use crate::{camera::Camera, scene::Scene}; #[repr(C)] struct Uniforms { @@ -91,6 +91,7 @@ pub struct Renderer { } impl Renderer { + #[allow(deprecated)] pub fn new(device: &ProtocolObject) -> Self { let scene = Scene::new(device); @@ -104,7 +105,7 @@ impl Renderer { device.newBufferWithBytes_length_options( NonNull::new(buffer_data.as_ptr().cast_mut().cast()).unwrap(), UNIFORM_BUFFER_SIZE, - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(); @@ -145,7 +146,7 @@ impl Renderer { device.newBufferWithBytes_length_options( NonNull::new(resource_buffer_data.as_ptr().cast_mut().cast()).unwrap(), size_of_val(resource_buffer_data.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(); @@ -193,7 +194,7 @@ impl Renderer { device.newBufferWithBytes_length_options( NonNull::new(instance_descriptors.as_ptr().cast_mut().cast()).unwrap(), size_of_val(instance_descriptors.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(); @@ -343,6 +344,7 @@ impl Renderer { .unwrap(); texture_descriptor.setPixelFormat(MTLPixelFormat::R32Uint); texture_descriptor.setUsage(MTLTextureUsage::ShaderRead); + #[allow(deprecated)] texture_descriptor.setStorageMode(MTLStorageMode::Managed); *self.random_texture.borrow_mut() = self .device @@ -416,6 +418,7 @@ impl Renderer { uniforms.light_count = self.scene.lights.len() as u32; + #[allow(deprecated)] self.uniform_buffer.didModifyRange(NSRange { location: self.uniform_buffer_offset.get(), length: ALIGNED_UNIFORMS_SIZE, diff --git a/examples/metal/raytracing/scene.rs b/examples/metal/raytracing/scene.rs index 879b99654..46e886d27 100644 --- a/examples/metal/raytracing/scene.rs +++ b/examples/metal/raytracing/scene.rs @@ -5,7 +5,7 @@ use glam::{Mat4, Vec3, Vec4}; use objc2::Message; use objc2::{rc::Retained, runtime::ProtocolObject}; use objc2_foundation::{ns_string, NSRange}; -use objc2_metal::{MTLBuffer, MTLDevice, MTLResource}; +use objc2_metal::{MTLBuffer, MTLDevice, MTLResource, MTLResourceOptions}; use rand::RngExt; use super::camera::Camera; @@ -119,14 +119,16 @@ impl Scene { }); } } + #[allow(deprecated)] let lights_buffer = unsafe { device.newBufferWithBytes_length_options( NonNull::new(lights.as_ptr().cast_mut().cast()).unwrap(), size_of_val(lights.as_slice()), - get_managed_buffer_storage_mode(), + MTLResourceOptions::StorageModeManaged, ) } .unwrap(); + #[allow(deprecated)] lights_buffer.didModifyRange(NSRange::new(0, lights_buffer.length())); lights_buffer.setLabel(Some(ns_string!("lights buffer"))); diff --git a/examples/metal/texture/main.rs b/examples/metal/texture/main.rs index ee1063cf6..07368b996 100644 --- a/examples/metal/texture/main.rs +++ b/examples/metal/texture/main.rs @@ -55,6 +55,7 @@ impl Renderer { .newLibraryWithSource_options_error(ns_string!(include_str!("shaders.metal")), None) .unwrap_or_else(|e| panic!("{e}")); + #[allow(deprecated)] let viewport_size_buffer = device .newBufferWithLength_options( 8, @@ -130,6 +131,7 @@ impl Renderer { TexturedVertex::new([-quad_width, quad_height], [0., 0.]), ]; + #[allow(deprecated)] let vertex_buffer = unsafe { device.newBufferWithBytes_length_options( NonNull::new(vertex_data.as_ptr().cast_mut().cast()).unwrap(), @@ -227,6 +229,7 @@ impl Renderer { unsafe { std::ptr::copy(viewport_size.as_ptr(), contents.cast(), byte_count); } + #[allow(deprecated)] self.viewport_size_buffer .didModifyRange(NSRange::new(0, byte_count)); } diff --git a/framework-crates/objc2-accessibility/Cargo.toml b/framework-crates/objc2-accessibility/Cargo.toml index f46100140..5993e1c60 100644 --- a/framework-crates/objc2-accessibility/Cargo.toml +++ b/framework-crates/objc2-accessibility/Cargo.toml @@ -46,6 +46,7 @@ targets = [ [features] default = [ "std", + "AXAttributeConstants", "AXAudiograph", "AXBrailleMap", "AXBrailleTranslator", @@ -71,6 +72,10 @@ objc2-core-foundation = ["dep:objc2-core-foundation"] objc2-core-graphics = ["dep:objc2-core-graphics"] unstable-darwin-objc = [] +AXAttributeConstants = [ + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSString", +] AXAudiograph = [ "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", diff --git a/framework-crates/objc2-app-kit/Cargo.toml b/framework-crates/objc2-app-kit/Cargo.toml index 5734d6c2f..94f123482 100644 --- a/framework-crates/objc2-app-kit/Cargo.toml +++ b/framework-crates/objc2-app-kit/Cargo.toml @@ -267,6 +267,7 @@ default = [ "NSPrintPanel", "NSPrinter", "NSProgressIndicator", + "NSRefreshController", "NSResponder", "NSRotationGestureRecognizer", "NSRuleEditor", @@ -309,6 +310,7 @@ default = [ "NSStatusBar", "NSStatusBarButton", "NSStatusItem", + "NSStatusItemExpandedInterfaceSession", "NSStepper", "NSStepperCell", "NSStepperTouchBarItem", @@ -350,12 +352,14 @@ default = [ "NSTextListElement", "NSTextRange", "NSTextSelection", + "NSTextSelectionManager", "NSTextSelectionNavigation", "NSTextStorage", "NSTextStorageScripting", "NSTextTable", "NSTextView", "NSTextViewportLayoutController", + "NSTextViewportRenderingSurface", "NSTintConfiguration", "NSTintProminence", "NSTitlebarAccessoryViewController", @@ -381,6 +385,9 @@ default = [ "NSUserInterfaceValidation", "NSView", "NSViewController", + "NSViewCornerConfiguration", + "NSViewCornerRadii", + "NSViewCornerRadius", "NSViewLayoutRegion", "NSVisualEffectView", "NSWindow", @@ -774,6 +781,7 @@ NSComboButton = [ "objc2-foundation/objc2-core-foundation", ] NSControl = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", "objc2-foundation/NSFormatter", @@ -1456,6 +1464,7 @@ NSProgressIndicator = [ "objc2-foundation/NSProgress", "objc2-foundation/objc2-core-foundation", ] +NSRefreshController = ["objc2-foundation/NSAttributedString"] NSResponder = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", @@ -1505,6 +1514,7 @@ NSSavePanel = [ "objc2-foundation/objc2-core-foundation", ] NSScreen = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSDictionary", @@ -1586,11 +1596,7 @@ NSSegmentedControl = [ "objc2-foundation/NSString", "objc2-foundation/objc2-core-foundation", ] -NSShadow = [ - "objc2-foundation/NSGeometry", - "objc2-foundation/NSObject", - "objc2-foundation/objc2-core-foundation", -] +NSShadow = ["objc2-foundation/NSObject"] NSSharingCollaborationModeRestriction = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", @@ -1711,6 +1717,7 @@ NSStatusItem = [ "objc2-foundation/NSString", "objc2-foundation/objc2-core-foundation", ] +NSStatusItemExpandedInterfaceSession = [] NSStepper = [ "objc2-foundation/NSGeometry", "objc2-foundation/NSObject", @@ -1737,9 +1744,7 @@ NSStringDrawing = [ "bitflags", "objc2-foundation/NSAttributedString", "objc2-foundation/NSDictionary", - "objc2-foundation/NSGeometry", "objc2-foundation/NSString", - "objc2-foundation/objc2-core-foundation", ] NSSwitch = [ "objc2-foundation/NSGeometry", @@ -1965,6 +1970,11 @@ NSTextSelection = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +NSTextSelectionManager = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSGeometry", + "objc2-foundation/objc2-core-foundation", +] NSTextSelectionNavigation = [ "bitflags", "objc2-foundation/NSArray", @@ -1990,6 +2000,7 @@ NSTextTable = [ "objc2-foundation/objc2-core-foundation", ] NSTextView = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", "objc2-foundation/NSDictionary", @@ -2006,6 +2017,7 @@ NSTextView = [ "objc2-foundation/objc2-core-foundation", ] NSTextViewportLayoutController = [] +NSTextViewportRenderingSurface = [] NSTintConfiguration = ["objc2-foundation/NSObject"] NSTintProminence = [] NSTitlebarAccessoryViewController = [ @@ -2148,6 +2160,9 @@ NSViewController = [ "objc2-foundation/NSString", "objc2-foundation/objc2-core-foundation", ] +NSViewCornerConfiguration = [] +NSViewCornerRadii = ["objc2-foundation/NSObject"] +NSViewCornerRadius = ["objc2-foundation/NSObject"] NSViewLayoutRegion = [ "objc2-foundation/NSGeometry", "objc2-foundation/objc2-core-foundation", @@ -2220,6 +2235,7 @@ NSWritingToolsCoordinator = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSGeometry", "objc2-foundation/NSRange", + "objc2-foundation/NSTextCheckingResult", "objc2-foundation/NSUUID", "objc2-foundation/NSValue", "objc2-foundation/objc2-core-foundation", diff --git a/framework-crates/objc2-ar-kit/Cargo.toml b/framework-crates/objc2-ar-kit/Cargo.toml index 0eae33bd8..4ccf63f6c 100644 --- a/framework-crates/objc2-ar-kit/Cargo.toml +++ b/framework-crates/objc2-ar-kit/Cargo.toml @@ -24,6 +24,7 @@ objc2-av-foundation = { workspace = true, optional = true, features = [ "AVCaptureDevice", "AVCapturePhotoOutput", "AVDepthData", + "AVMetadataObject", ] } objc2-core-foundation = { workspace = true, optional = true, features = ["CFCGTypes"] } objc2-core-graphics = { workspace = true, optional = true, features = ["CGImage"] } diff --git a/framework-crates/objc2-ar-kit/translation-config.toml b/framework-crates/objc2-ar-kit/translation-config.toml index 38c91a909..064744066 100644 --- a/framework-crates/objc2-ar-kit/translation-config.toml +++ b/framework-crates/objc2-ar-kit/translation-config.toml @@ -1,6 +1,10 @@ framework = "ARKit" crate = "objc2-ar-kit" required-crates = [] +flags = [ + # Needed for unclear reasons? Maybe because ARKitCore exists? + "-DUSE_ARKIT_PUBLIC_HEADERS=1", +] maccatalyst = "14.0" ios = "11.0" visionos = "1.0" diff --git a/framework-crates/objc2-audio-toolbox/Cargo.toml b/framework-crates/objc2-audio-toolbox/Cargo.toml index 0274d7658..e0e50ff0c 100644 --- a/framework-crates/objc2-audio-toolbox/Cargo.toml +++ b/framework-crates/objc2-audio-toolbox/Cargo.toml @@ -73,6 +73,7 @@ default = [ "AUCocoaUIView", "AUComponent", "AUGraph", + "AUHeadTrackingBinauralRenderer", "AUParameters", "AudioCodec", "AudioComponent", @@ -132,6 +133,7 @@ AUAudioUnitImplementation = [] AUCocoaUIView = [] AUComponent = ["bitflags"] AUGraph = [] +AUHeadTrackingBinauralRenderer = [] AUParameters = [] AudioCodec = ["bitflags"] AudioComponent = ["bitflags"] diff --git a/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml b/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml index df3dffba6..b5d482abe 100644 --- a/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml +++ b/framework-crates/objc2-automatic-assessment-configuration/Cargo.toml @@ -22,7 +22,9 @@ objc2-foundation = { workspace = true, features = [ "NSDictionary", "NSError", "NSObject", + "NSSet", "NSString", + "NSURL", "alloc", ] } diff --git a/framework-crates/objc2-av-foundation/Cargo.toml b/framework-crates/objc2-av-foundation/Cargo.toml index 175bc8a17..289eb2a0d 100644 --- a/framework-crates/objc2-av-foundation/Cargo.toml +++ b/framework-crates/objc2-av-foundation/Cargo.toml @@ -82,6 +82,12 @@ objc2-quartz-core = { workspace = true, optional = true, features = [ "CALayer", "CAMediaTiming", ] } +objc2-video-toolbox = { workspace = true, optional = true, features = [ + "VTCompressionSession", + "VTErrors", + "objc2", + "objc2-core-media", +] } [package.metadata.docs.rs] default-target = "aarch64-apple-darwin" @@ -98,6 +104,7 @@ targets = [ features = [ "objc2-core-media", "objc2-uniform-type-identifiers", + "objc2-video-toolbox", ] [features] @@ -121,6 +128,7 @@ default = [ "AVAssetVariant", "AVAssetWriter", "AVAssetWriterInput", + "AVAssetWritingPlanner", "AVAsynchronousKeyValueLoading", "AVAudioBuffer", "AVAudioChannelLayout", @@ -172,6 +180,7 @@ default = [ "AVCaptionSettings", "AVCaptureAudioDataOutput", "AVCaptureAudioPreviewOutput", + "AVCaptureBroadcastVideoOutput", "AVCaptureControl", "AVCaptureDataOutputSynchronizer", "AVCaptureDepthDataOutput", @@ -231,12 +240,14 @@ default = [ "AVPlayerItemMediaDataCollector", "AVPlayerItemOutput", "AVPlayerItemProtectedContentAdditions", + "AVPlayerItemSampleBufferOutput", "AVPlayerItemTrack", "AVPlayerLayer", "AVPlayerLooper", "AVPlayerMediaSelectionCriteria", "AVPlayerOutput", "AVPortraitEffectsMatte", + "AVProVideoStorage", "AVQueuedSampleBufferRendering", "AVRenderedCaptionImage", "AVRouteDetector", @@ -286,6 +297,7 @@ objc2-image-io = ["dep:objc2-image-io"] objc2-media-toolbox = ["dep:objc2-media-toolbox"] objc2-quartz-core = ["dep:objc2-quartz-core"] objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] +objc2-video-toolbox = ["dep:objc2-video-toolbox"] unstable-darwin-objc = [] AVAnimation = ["objc2-foundation/NSString"] @@ -404,6 +416,14 @@ AVAssetWriterInput = [ "objc2-foundation/NSURL", "objc2-foundation/NSValue", ] +AVAssetWritingPlanner = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSData", + "objc2-foundation/NSDictionary", + "objc2-foundation/NSError", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] AVAsynchronousKeyValueLoading = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", @@ -488,6 +508,10 @@ AVCaptureAudioDataOutput = [ "objc2-foundation/NSString", ] AVCaptureAudioPreviewOutput = ["objc2-foundation/NSString"] +AVCaptureBroadcastVideoOutput = [ + "objc2-foundation/NSDictionary", + "objc2-foundation/NSString", +] AVCaptureControl = [] AVCaptureDataOutputSynchronizer = [ "objc2-foundation/NSArray", @@ -630,6 +654,7 @@ AVError = [ AVExternalStorageDevice = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", + "objc2-foundation/NSSet", "objc2-foundation/NSString", "objc2-foundation/NSURL", "objc2-foundation/NSUUID", @@ -772,6 +797,7 @@ AVPlayerItemOutput = [ "objc2-foundation/NSValue", ] AVPlayerItemProtectedContentAdditions = ["objc2-foundation/NSDate"] +AVPlayerItemSampleBufferOutput = [] AVPlayerItemTrack = ["objc2-foundation/NSString"] AVPlayerLayer = [ "objc2-foundation/NSDictionary", @@ -797,6 +823,11 @@ AVPortraitEffectsMatte = [ "objc2-foundation/NSError", "objc2-foundation/NSString", ] +AVProVideoStorage = [ + "objc2-foundation/NSError", + "objc2-foundation/NSSet", + "objc2-foundation/NSString", +] AVQueuedSampleBufferRendering = [] AVRenderedCaptionImage = [] AVRouteDetector = [ diff --git a/framework-crates/objc2-avf-audio/Cargo.toml b/framework-crates/objc2-avf-audio/Cargo.toml index d9bcfe382..dc727cdc1 100644 --- a/framework-crates/objc2-avf-audio/Cargo.toml +++ b/framework-crates/objc2-avf-audio/Cargo.toml @@ -168,6 +168,7 @@ AVAudioMixerNode = [] AVAudioMixing = [] AVAudioNode = [ "objc2-foundation/NSDate", + "objc2-foundation/NSError", "objc2-foundation/NSString", ] AVAudioPlayer = [ @@ -179,7 +180,10 @@ AVAudioPlayer = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] -AVAudioPlayerNode = ["bitflags"] +AVAudioPlayerNode = [ + "bitflags", + "objc2-foundation/NSError", +] AVAudioRecorder = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", diff --git a/framework-crates/objc2-background-assets/Cargo.toml b/framework-crates/objc2-background-assets/Cargo.toml index 851dd574a..b5ef5ff91 100644 --- a/framework-crates/objc2-background-assets/Cargo.toml +++ b/framework-crates/objc2-background-assets/Cargo.toml @@ -68,6 +68,7 @@ BAAssetPack = [ "objc2-foundation/NSString", ] BAAssetPackManager = [ + "objc2-foundation/NSArray", "objc2-foundation/NSData", "objc2-foundation/NSError", "objc2-foundation/NSSet", @@ -75,6 +76,7 @@ BAAssetPackManager = [ "objc2-foundation/NSURL", ] BAAssetPackManifest = [ + "objc2-foundation/NSArray", "objc2-foundation/NSData", "objc2-foundation/NSError", "objc2-foundation/NSSet", diff --git a/framework-crates/objc2-browser-engine-kit/Cargo.toml b/framework-crates/objc2-browser-engine-kit/Cargo.toml index 2731f2510..d6a53ec0a 100644 --- a/framework-crates/objc2-browser-engine-kit/Cargo.toml +++ b/framework-crates/objc2-browser-engine-kit/Cargo.toml @@ -25,6 +25,12 @@ objc2-core-foundation = { workspace = true, optional = true, features = [ "CFCGTypes", "objc2", ] } +objc2-core-video = { workspace = true, optional = true, features = [ + "CVBuffer", + "CVImageBuffer", + "CVPixelBuffer", + "objc2", +] } objc2-foundation = { workspace = true, features = ["alloc"] } objc2-quartz-core = { workspace = true, optional = true, features = ["CALayer"] } objc2-ui-kit = { workspace = true } @@ -78,6 +84,7 @@ default = [ "libc", "objc2-av-foundation", "objc2-core-foundation", + "objc2-core-video", "objc2-quartz-core", "objc2-uniform-type-identifiers", ] @@ -88,15 +95,19 @@ block2 = ["dep:block2"] libc = ["dep:libc"] objc2-av-foundation = ["dep:objc2-av-foundation"] objc2-core-foundation = ["dep:objc2-core-foundation"] +objc2-core-video = ["dep:objc2-core-video"] objc2-quartz-core = ["dep:objc2-quartz-core"] objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] unstable-darwin-objc = [] BEAccessibility = [ "bitflags", + "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", + "objc2-foundation/NSDictionary", "objc2-foundation/NSRange", "objc2-foundation/NSString", + "objc2-foundation/NSValue", ] BEAccessibilityConstants = ["objc2-ui-kit/UIAccessibilityConstants"] BEAccessibilityRemoteElement = ["objc2-foundation/NSString"] @@ -234,6 +245,8 @@ BEWebContentFilter = [ "objc2-foundation/NSData", "objc2-foundation/NSError", "objc2-foundation/NSURL", + "objc2-ui-kit/UIResponder", + "objc2-ui-kit/UIView", ] BEWebContentProcess = [ "objc2-foundation/NSError", diff --git a/framework-crates/objc2-browser-kit/Cargo.toml b/framework-crates/objc2-browser-kit/Cargo.toml index 2b4b121e6..5f0f5e5ed 100644 --- a/framework-crates/objc2-browser-kit/Cargo.toml +++ b/framework-crates/objc2-browser-kit/Cargo.toml @@ -38,6 +38,7 @@ targets = [ default = [ "std", "BEAvailability", + "BEBrowserContentFilter", "BEBrowserData", "BEBrowserDataExchangeErrors", "BEBrowserDataExportManager", @@ -54,6 +55,7 @@ objc2-ui-kit = ["dep:objc2-ui-kit"] unstable-darwin-objc = [] BEAvailability = ["objc2-foundation/NSError"] +BEBrowserContentFilter = ["objc2-foundation/NSURL"] BEBrowserData = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-car-play/Cargo.toml b/framework-crates/objc2-car-play/Cargo.toml index 7c2a1690f..a7619a791 100644 --- a/framework-crates/objc2-car-play/Cargo.toml +++ b/framework-crates/objc2-car-play/Cargo.toml @@ -79,6 +79,7 @@ default = [ "CPBarButton", "CPBarButtonProviding", "CPButton", + "CPChargingStationConnection", "CPContact", "CPContactTemplate", "CPDashboardButton", @@ -109,10 +110,15 @@ default = [ "CPLocation", "CPManeuver", "CPMapButton", + "CPMapPanel", + "CPMapPanelButtonConfiguration", + "CPMapPanelItem", + "CPMapPanelSection", "CPMapTemplate", "CPMapTemplateWaypoint", "CPMessageComposeBarButton", "CPMessageListItem", + "CPMultiStopCardConfiguration", "CPNavigationAlert", "CPNavigationEnum", "CPNavigationSession", @@ -120,10 +126,14 @@ default = [ "CPNowPlayingButton", "CPNowPlayingMode", "CPNowPlayingTemplate", + "CPPanel", + "CPPanelButtonConfiguration", + "CPPanelItem", "CPPlaybackConfiguration", "CPPointOfInterest", "CPPointOfInterestTemplate", "CPRerouteReason", + "CPRouteDetail", "CPRouteInformation", "CPRouteSegment", "CPRouteSource", @@ -185,6 +195,11 @@ CPBarButton = [ ] CPBarButtonProviding = ["objc2-foundation/NSArray"] CPButton = ["objc2-foundation/NSString"] +CPChargingStationConnection = [ + "objc2-foundation/NSMeasurement", + "objc2-foundation/NSObject", + "objc2-foundation/NSUnit", +] CPContact = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", @@ -290,15 +305,35 @@ CPManeuver = [ "objc2-foundation/NSUnit", ] CPMapButton = ["objc2-foundation/NSObject"] +CPMapPanel = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +CPMapPanelButtonConfiguration = ["objc2-foundation/NSObject"] +CPMapPanelItem = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] +CPMapPanelSection = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] CPMapTemplate = [ "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSError", "objc2-foundation/NSObject", ] -CPMapTemplateWaypoint = [] +CPMapTemplateWaypoint = ["objc2-foundation/NSObject"] CPMessageComposeBarButton = ["objc2-foundation/NSObject"] CPMessageListItem = ["objc2-foundation/NSString"] +CPMultiStopCardConfiguration = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] CPNavigationAlert = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", @@ -311,6 +346,7 @@ CPNavigationSession = [ "objc2-foundation/NSString", ] CPNavigationWaypoint = [ + "objc2-foundation/NSArray", "objc2-foundation/NSMeasurement", "objc2-foundation/NSObject", "objc2-foundation/NSString", @@ -329,6 +365,12 @@ CPNowPlayingTemplate = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +CPPanel = ["objc2-foundation/NSObject"] +CPPanelButtonConfiguration = ["objc2-foundation/NSObject"] +CPPanelItem = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] CPPlaybackConfiguration = ["objc2-foundation/NSObject"] CPPointOfInterest = [ "objc2-foundation/NSObject", @@ -340,6 +382,13 @@ CPPointOfInterestTemplate = [ "objc2-foundation/NSString", ] CPRerouteReason = [] +CPRouteDetail = [ + "objc2-foundation/NSLocale", + "objc2-foundation/NSMeasurement", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSUnit", +] CPRouteInformation = ["objc2-foundation/NSArray"] CPRouteSegment = [ "objc2-foundation/NSArray", @@ -368,6 +417,7 @@ CPTemplateApplicationScene = [] CPTextButton = ["objc2-foundation/NSString"] CPThumbnailImage = ["objc2-foundation/NSObject"] CPTravelEstimates = [ + "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSMeasurement", "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-cinematic/Cargo.toml b/framework-crates/objc2-cinematic/Cargo.toml index 783f03391..7e9ade788 100644 --- a/framework-crates/objc2-cinematic/Cargo.toml +++ b/framework-crates/objc2-cinematic/Cargo.toml @@ -70,6 +70,7 @@ default = [ "CNDecision", "CNDetection", "CNDetectionTrack", + "CNImageRenderingSession", "CNObjectTracker", "CNRenderingSession", "CNScript", @@ -110,6 +111,7 @@ CNDetectionTrack = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", ] +CNImageRenderingSession = [] CNObjectTracker = ["objc2-foundation/NSObject"] CNRenderingSession = [ "objc2-foundation/NSArray", diff --git a/framework-crates/objc2-color-sync/Cargo.toml b/framework-crates/objc2-color-sync/Cargo.toml index ff75cabe4..a9cbb1436 100644 --- a/framework-crates/objc2-color-sync/Cargo.toml +++ b/framework-crates/objc2-color-sync/Cargo.toml @@ -38,6 +38,7 @@ default = [ "ColorSyncBase", "ColorSyncCMM", "ColorSyncDevice", + "ColorSyncHeadroomAdaptiveGainCurve", "ColorSyncProfile", "ColorSyncTransform", "objc2", @@ -61,6 +62,10 @@ ColorSyncDevice = [ "objc2-core-foundation/CFString", "objc2-core-foundation/CFUUID", ] +ColorSyncHeadroomAdaptiveGainCurve = [ + "objc2-core-foundation/CFData", + "objc2-core-foundation/CFDictionary", +] ColorSyncProfile = [ "objc2-core-foundation/CFArray", "objc2-core-foundation/CFData", diff --git a/framework-crates/objc2-compositor-services/translation-config.toml b/framework-crates/objc2-compositor-services/translation-config.toml index edbad795f..3eaed4c37 100644 --- a/framework-crates/objc2-compositor-services/translation-config.toml +++ b/framework-crates/objc2-compositor-services/translation-config.toml @@ -4,6 +4,8 @@ required-crates = ["objc2"] # Currently flags = [ # Emit `cp_retain`/`cp_release`. "-DOS_OBJECT_USE_OBJC=0", + # For ARKit + "-DUSE_ARKIT_PUBLIC_HEADERS=1", ] visionos = "1.0" diff --git a/framework-crates/objc2-core-audio/translation-config.toml b/framework-crates/objc2-core-audio/translation-config.toml index 6ca9a9de9..4eb625553 100644 --- a/framework-crates/objc2-core-audio/translation-config.toml +++ b/framework-crates/objc2-core-audio/translation-config.toml @@ -16,6 +16,7 @@ typedef.AudioServerPlugInHostRef.skipped = true struct.AudioServerPlugInDriverInterface.skipped = true typedef.AudioServerPlugInDriverInterface.skipped = true typedef.AudioServerPlugInDriverRef.skipped = true +fn.AudioServerPlugInRegisterMediaDeviceExtension.skipped = true # This is currently emitted incorrectly, the union field is # not included, which is an ABI mismatch. diff --git a/framework-crates/objc2-core-graphics/Cargo.toml b/framework-crates/objc2-core-graphics/Cargo.toml index d4e8831fb..446355490 100644 --- a/framework-crates/objc2-core-graphics/Cargo.toml +++ b/framework-crates/objc2-core-graphics/Cargo.toml @@ -77,12 +77,14 @@ default = [ "CGPDFContext", "CGPDFDictionary", "CGPDFDocument", + "CGPDFMarkedContentItem", "CGPDFObject", "CGPDFOperatorTable", "CGPDFPage", "CGPDFScanner", "CGPDFStream", "CGPDFString", + "CGPDFStructureElement", "CGPSConverter", "CGPath", "CGPattern", @@ -226,12 +228,14 @@ CGPDFDocument = [ "objc2-core-foundation/CFDictionary", "objc2-core-foundation/CFURL", ] +CGPDFMarkedContentItem = [] CGPDFObject = ["objc2-core-foundation/CFCGTypes"] CGPDFOperatorTable = [] CGPDFPage = ["objc2-core-foundation/CFCGTypes"] CGPDFScanner = ["objc2-core-foundation/CFCGTypes"] CGPDFStream = ["objc2-core-foundation/CFData"] CGPDFString = ["objc2-core-foundation/CFDate"] +CGPDFStructureElement = [] CGPSConverter = ["objc2-core-foundation/CFDictionary"] CGPath = [ "objc2-core-foundation/CFArray", diff --git a/framework-crates/objc2-core-graphics/src/lib.rs b/framework-crates/objc2-core-graphics/src/lib.rs index c00709412..6a88f1000 100644 --- a/framework-crates/objc2-core-graphics/src/lib.rs +++ b/framework-crates/objc2-core-graphics/src/lib.rs @@ -19,14 +19,20 @@ extern crate std; mod generated; #[cfg(feature = "CGImage")] mod image; +#[cfg(feature = "CGPDFContext")] +mod pdf_context; mod thread_safety; #[allow(unused_imports, unreachable_pub)] pub use self::generated::*; +#[cfg(feature = "CGPDFContext")] +pub use self::pdf_context::*; #[allow(dead_code)] pub(crate) type UniCharCount = core::ffi::c_ulong; #[allow(dead_code)] pub(crate) type UniChar = u16; +#[allow(dead_code)] +pub(crate) type OSStatus = i32; #[allow(non_upper_case_globals)] #[cfg(feature = "CGWindowLevel")] diff --git a/framework-crates/objc2-core-graphics/src/pdf_context.rs b/framework-crates/objc2-core-graphics/src/pdf_context.rs new file mode 100644 index 000000000..fbdc413bd --- /dev/null +++ b/framework-crates/objc2-core-graphics/src/pdf_context.rs @@ -0,0 +1,37 @@ +use core::cell::UnsafeCell; +use core::marker::{PhantomData, PhantomPinned}; +#[cfg(feature = "objc2")] +use objc2::cf_objc2_type; +use objc2_core_foundation::cf_type; + +/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgpdfmarkedcontentitem?language=objc) +#[doc(alias = "CGPDFMarkedContentItemRef")] +#[repr(C)] +pub struct CGPDFMarkedContentItem { + inner: [u8; 0], + _p: UnsafeCell, PhantomPinned)>>, +} + +cf_type!( + unsafe impl CGPDFMarkedContentItem {} +); +#[cfg(feature = "objc2")] +cf_objc2_type!( + unsafe impl RefEncode<"CGPDFMarkedContentItem"> for CGPDFMarkedContentItem {} +); + +/// [Apple's documentation](https://developer.apple.com/documentation/coregraphics/cgpdfstructureelement?language=objc) +#[doc(alias = "CGPDFStructureElementRef")] +#[repr(C)] +pub struct CGPDFStructureElement { + inner: [u8; 0], + _p: UnsafeCell, PhantomPinned)>>, +} + +cf_type!( + unsafe impl CGPDFStructureElement {} +); +#[cfg(feature = "objc2")] +cf_objc2_type!( + unsafe impl RefEncode<"CGPDFStructureElement"> for CGPDFStructureElement {} +); diff --git a/framework-crates/objc2-core-graphics/translation-config.toml b/framework-crates/objc2-core-graphics/translation-config.toml index 208a386ed..606a1574b 100644 --- a/framework-crates/objc2-core-graphics/translation-config.toml +++ b/framework-crates/objc2-core-graphics/translation-config.toml @@ -81,6 +81,10 @@ const.kCGNumberOfEventSupressionStates.skipped = true # Placed on CGEventFilterMask instead of being a separate `const`. const.kCGEventFilterMaskPermitAllEvents.skipped = true +# Defined twice (one is a forward declaration) +typedef.CGPDFMarkedContentItemRef.skipped = true +typedef.CGPDFStructureElementRef.skipped = true + ## ## Fix bounds information. ## diff --git a/framework-crates/objc2-core-image/Cargo.toml b/framework-crates/objc2-core-image/Cargo.toml index f49f6045d..4b38d7d60 100644 --- a/framework-crates/objc2-core-image/Cargo.toml +++ b/framework-crates/objc2-core-image/Cargo.toml @@ -210,8 +210,11 @@ CIPlugInInterface = [] CIRAWFilter = [ "objc2-foundation/NSArray", "objc2-foundation/NSData", + "objc2-foundation/NSDate", "objc2-foundation/NSDictionary", + "objc2-foundation/NSError", "objc2-foundation/NSObject", + "objc2-foundation/NSProgress", "objc2-foundation/NSString", "objc2-foundation/NSURL", ] diff --git a/framework-crates/objc2-core-image/src/lib.rs b/framework-crates/objc2-core-image/src/lib.rs index 3f31045e8..1c88c6d35 100644 --- a/framework-crates/objc2-core-image/src/lib.rs +++ b/framework-crates/objc2-core-image/src/lib.rs @@ -19,3 +19,7 @@ extern crate std; mod generated; #[allow(unused_imports, unreachable_pub)] pub use self::generated::*; + +// MacTypes.h +#[allow(dead_code)] +pub(crate) type OSType = u32; diff --git a/framework-crates/objc2-core-image/translation-config.toml b/framework-crates/objc2-core-image/translation-config.toml index 544004379..dbef04c1e 100644 --- a/framework-crates/objc2-core-image/translation-config.toml +++ b/framework-crates/objc2-core-image/translation-config.toml @@ -2,6 +2,7 @@ framework = "CoreImage" crate = "objc2-core-image" required-crates = ["objc2", "objc2-foundation"] undesired-default-dependencies = ["objc2-open-gl", "objc2-open-gl-es"] # OpenGL is deprecated +custom-lib-rs = true macos = "10.11" maccatalyst = "13.0" ios = "5.0" diff --git a/framework-crates/objc2-core-location/Cargo.toml b/framework-crates/objc2-core-location/Cargo.toml index 62ab78962..17228f10d 100644 --- a/framework-crates/objc2-core-location/Cargo.toml +++ b/framework-crates/objc2-core-location/Cargo.toml @@ -48,6 +48,7 @@ default = [ "CLBeaconIdentityCondition", "CLBeaconIdentityConstraint", "CLBeaconRegion", + "CLBody", "CLCircularGeographicCondition", "CLCircularRegion", "CLCondition", @@ -104,6 +105,7 @@ CLBeaconRegion = [ "objc2-foundation/NSUUID", "objc2-foundation/NSValue", ] +CLBody = [] CLCircularGeographicCondition = ["objc2-foundation/NSObject"] CLCircularRegion = [ "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-core-motion/Cargo.toml b/framework-crates/objc2-core-motion/Cargo.toml index 82bc57a83..24c05237a 100644 --- a/framework-crates/objc2-core-motion/Cargo.toml +++ b/framework-crates/objc2-core-motion/Cargo.toml @@ -46,6 +46,7 @@ default = [ "CMAuthorization", "CMAvailability", "CMBatchedSensorManager", + "CMBody", "CMDeviceMotion", "CMError", "CMErrorDomain", @@ -65,6 +66,7 @@ default = [ "CMOdometer", "CMPedometer", "CMRecordedAccelerometerData", + "CMRecordedDeviceMotion", "CMRecordedPressureData", "CMRotationRateData", "CMSensorRecorder", @@ -107,6 +109,7 @@ CMBatchedSensorManager = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", ] +CMBody = [] CMDeviceMotion = ["objc2-foundation/NSObject"] CMError = [] CMErrorDomain = ["objc2-foundation/NSString"] @@ -168,6 +171,10 @@ CMRecordedAccelerometerData = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", ] +CMRecordedDeviceMotion = [ + "objc2-foundation/NSDate", + "objc2-foundation/NSObject", +] CMRecordedPressureData = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-core-spotlight/Cargo.toml b/framework-crates/objc2-core-spotlight/Cargo.toml index ac5f7d4fd..b6e725418 100644 --- a/framework-crates/objc2-core-spotlight/Cargo.toml +++ b/framework-crates/objc2-core-spotlight/Cargo.toml @@ -43,6 +43,7 @@ default = [ "CSPerson", "CSSearchQuery", "CSSearchableIndex", + "CSSearchableIndexDescription", "CSSearchableItem", "CSSearchableItemAttributeSet", "CSSearchableItemAttributeSet_Categories", @@ -93,6 +94,11 @@ CSSearchableIndex = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] +CSSearchableIndexDescription = [ + "objc2-foundation/NSFileManager", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] CSSearchableItem = [ "bitflags", "objc2-foundation/NSDate", diff --git a/framework-crates/objc2-core-telephony/Cargo.toml b/framework-crates/objc2-core-telephony/Cargo.toml index d7d439b53..0effae507 100644 --- a/framework-crates/objc2-core-telephony/Cargo.toml +++ b/framework-crates/objc2-core-telephony/Cargo.toml @@ -41,6 +41,7 @@ default = [ "CTCellularPlanProvisioning", "CTCellularPlanProvisioningRequest", "CTCellularPlanStatus", + "CTQuickSwitch", "CTSubscriber", "CTSubscriberInfo", "CTTelephonyNetworkInfo", @@ -71,6 +72,10 @@ CTCellularPlanStatus = [ "objc2-foundation/NSError", "objc2-foundation/NSString", ] +CTQuickSwitch = [ + "objc2-foundation/NSError", + "objc2-foundation/NSString", +] CTSubscriber = [ "objc2-foundation/NSData", "objc2-foundation/NSString", diff --git a/framework-crates/objc2-fs-kit/Cargo.toml b/framework-crates/objc2-fs-kit/Cargo.toml index 5b5754c6c..673d976b9 100644 --- a/framework-crates/objc2-fs-kit/Cargo.toml +++ b/framework-crates/objc2-fs-kit/Cargo.toml @@ -35,10 +35,12 @@ default = [ "std", "FSClient", "FSContainer", + "FSContext", "FSEntityIdentifier", "FSFileName", "FSFileSystem", "FSFileSystemBase", + "FSFreeSpace", "FSItem", "FSKitDefines", "FSKitError", @@ -51,7 +53,9 @@ default = [ "FSTaskOptions", "FSUnaryFileSystem", "FSVolume", + "FSVolumeDataCacheHandler", "FSVolumeExtent", + "FSVolumeHandlerResult", "bitflags", "block2", "libc", @@ -66,6 +70,8 @@ unstable-darwin-objc = [] FSClient = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", ] FSContainer = [ "objc2-foundation/NSData", @@ -73,6 +79,7 @@ FSContainer = [ "objc2-foundation/NSObject", "objc2-foundation/NSUUID", ] +FSContext = [] FSEntityIdentifier = [ "objc2-foundation/NSData", "objc2-foundation/NSObject", @@ -85,6 +92,7 @@ FSFileName = [ ] FSFileSystem = [] FSFileSystemBase = ["objc2-foundation/NSError"] +FSFreeSpace = [] FSItem = [ "bitflags", "objc2-foundation/NSObject", @@ -128,7 +136,12 @@ FSVolume = [ "objc2-foundation/NSString", "objc2-foundation/NSUUID", ] +FSVolumeDataCacheHandler = ["objc2-foundation/NSError"] FSVolumeExtent = [ "bitflags", "objc2-foundation/NSError", ] +FSVolumeHandlerResult = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSData", +] diff --git a/framework-crates/objc2-fs-kit/src/lib.rs b/framework-crates/objc2-fs-kit/src/lib.rs index 5abe7a902..14231e16f 100644 --- a/framework-crates/objc2-fs-kit/src/lib.rs +++ b/framework-crates/objc2-fs-kit/src/lib.rs @@ -19,3 +19,30 @@ extern crate std; mod generated; #[allow(unused_imports, unreachable_pub)] pub use self::generated::*; + +/// A tool to detect whether the directory contents changed since the last call to enumerate a directory. +/// +/// Your implementation of ``FSVolume/Handler/enumerateDirectory(_:startingAt:verifier:attributes:packer:replyHandler:)`` defines the semantics of this value; it's opaque to FSKit. +/// +/// See also [Apple's documentation](https://developer.apple.com/documentation/fskit/fsdirectoryverifier?language=objc) +// NS_TYPED_EXTENSIBLE_ENUM +#[cfg(feature = "FSVolume")] +pub type FSDirectoryVerifier = u64; + +#[cfg(all(feature = "FSVolume", feature = "FSVolumeHandlerResult"))] +#[allow(non_snake_case)] +impl FSEnumerateDirectoryResult { + objc2::extern_methods!( + /// Creates a result instance with all required properties populated. + /// + /// - Parameters: + /// - currentVerifier: An ``FSDirectoryVerifier`` value that reflects the directory's current version. This value is used to detect whether the directory contents changed since the last enumeration call. + /// - Returns: A populated result instance, or `nil` if validation fails. + #[unsafe(method(initWithVerifier:))] + #[unsafe(method_family = init)] + pub unsafe fn initWithVerifier( + this: objc2::rc::Allocated, + current_verifier: FSDirectoryVerifier, + ) -> Option>; + ); +} diff --git a/framework-crates/objc2-fs-kit/translation-config.toml b/framework-crates/objc2-fs-kit/translation-config.toml index 2929aa266..519009315 100644 --- a/framework-crates/objc2-fs-kit/translation-config.toml +++ b/framework-crates/objc2-fs-kit/translation-config.toml @@ -1,11 +1,16 @@ framework = "FSKit" crate = "objc2-fs-kit" required-crates = ["objc2", "objc2-foundation"] +custom-lib-rs = true macos = "15.4" # Uses `libc::FREAD` and `libc::FWRITE` enum.FSVolumeOpenModes.use-value = true +# Defined in both FSVolume.h and FSVolumeHandlerResult.h +typedef.FSDirectoryVerifier.skipped = true +class.FSEnumerateDirectoryResult.methods."initWithVerifier:".skipped = true + # Wants to pass `libc::timespec` to/from objc2 methods # (but `libc::timespec` doesn't implement `Encode`). class.FSItemAttributes.methods.modifyTime.skipped = true diff --git a/framework-crates/objc2-game-controller/Cargo.toml b/framework-crates/objc2-game-controller/Cargo.toml index d6b776c5c..d47109018 100644 --- a/framework-crates/objc2-game-controller/Cargo.toml +++ b/framework-crates/objc2-game-controller/Cargo.toml @@ -63,16 +63,19 @@ default = [ "GCControllerButtonInput", "GCControllerDirectionPad", "GCControllerElement", + "GCControllerHomeButtonSettingsManager", "GCControllerInput", "GCControllerTouchpad", "GCDevice", "GCDeviceBattery", "GCDeviceCursor", "GCDeviceHaptics", + "GCDeviceHapticsLocality", "GCDeviceLight", "GCDevicePhysicalInput", "GCDevicePhysicalInputState", "GCDevicePhysicalInputStateDiff", + "GCDeviceType", "GCDirectionPadElement", "GCDirectionalGamepad", "GCDualSenseAdaptiveTrigger", @@ -105,6 +108,7 @@ default = [ "GCRacingWheel", "GCRacingWheelInput", "GCRelativeInput", + "GCSpatialAccessory", "GCSteeringWheelElement", "GCStylus", "GCSwitchElement", @@ -151,6 +155,7 @@ GCControllerElement = [ "objc2-foundation/NSSet", "objc2-foundation/NSString", ] +GCControllerHomeButtonSettingsManager = ["objc2-foundation/NSError"] GCControllerInput = [] GCControllerTouchpad = [] GCDevice = ["objc2-foundation/NSString"] @@ -160,13 +165,18 @@ GCDeviceHaptics = [ "objc2-foundation/NSSet", "objc2-foundation/NSString", ] +GCDeviceHapticsLocality = ["objc2-foundation/NSString"] GCDeviceLight = [] -GCDevicePhysicalInput = [] +GCDevicePhysicalInput = ["objc2-foundation/NSDate"] GCDevicePhysicalInputState = [ "objc2-foundation/NSDate", "objc2-foundation/NSString", ] GCDevicePhysicalInputStateDiff = ["objc2-foundation/NSEnumerator"] +GCDeviceType = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] GCDirectionPadElement = [] GCDirectionalGamepad = ["objc2-foundation/NSString"] GCDualSenseAdaptiveTrigger = [] @@ -231,6 +241,10 @@ GCRelativeInput = [ "objc2-foundation/NSDate", "objc2-foundation/NSSet", ] +GCSpatialAccessory = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSString", +] GCSteeringWheelElement = [] GCStylus = [ "objc2-foundation/NSArray", diff --git a/framework-crates/objc2-health-kit/Cargo.toml b/framework-crates/objc2-health-kit/Cargo.toml index 61be6c252..eb8581a16 100644 --- a/framework-crates/objc2-health-kit/Cargo.toml +++ b/framework-crates/objc2-health-kit/Cargo.toml @@ -86,6 +86,7 @@ default = [ "HKLensSpecification", "HKLiveWorkoutBuilder", "HKLiveWorkoutDataSource", + "HKLiveWorkoutZoneUpdate", "HKMedicationConcept", "HKMedicationDoseEvent", "HKMetadata", @@ -125,6 +126,7 @@ default = [ "HKVisionPrism", "HKWorkout", "HKWorkoutActivity", + "HKWorkoutActivityType", "HKWorkoutBuilder", "HKWorkoutConfiguration", "HKWorkoutEffortRelationshipQuery", @@ -358,6 +360,7 @@ HKLiveWorkoutDataSource = [ "objc2-foundation/NSPredicate", "objc2-foundation/NSSet", ] +HKLiveWorkoutZoneUpdate = ["objc2-foundation/NSDate"] HKMedicationConcept = [ "objc2-foundation/NSObject", "objc2-foundation/NSSet", @@ -551,6 +554,7 @@ HKWorkoutActivity = [ "objc2-foundation/NSString", "objc2-foundation/NSUUID", ] +HKWorkoutActivityType = [] HKWorkoutBuilder = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", diff --git a/framework-crates/objc2-message-ui/Cargo.toml b/framework-crates/objc2-message-ui/Cargo.toml index 95f39831a..d34c8a999 100644 --- a/framework-crates/objc2-message-ui/Cargo.toml +++ b/framework-crates/objc2-message-ui/Cargo.toml @@ -45,8 +45,10 @@ features = ["objc2-messages"] [features] default = [ "std", + "MFComposeAssistantViewController", "MFMailComposeControllerDeferredAction", "MFMailComposeViewController", + "MFMailDraft", "MFMessageComposeViewController", "UPI", "block2", @@ -59,6 +61,11 @@ objc2-messages = ["dep:objc2-messages"] objc2-ui-kit = ["dep:objc2-ui-kit"] unstable-darwin-objc = [] +MFComposeAssistantViewController = [ + "objc2-foundation/NSBundle", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] MFMailComposeControllerDeferredAction = [] MFMailComposeViewController = [ "objc2-foundation/NSArray", @@ -69,6 +76,11 @@ MFMailComposeViewController = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +MFMailDraft = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSAttributedString", + "objc2-foundation/NSString", +] MFMessageComposeViewController = [ "objc2-foundation/NSArray", "objc2-foundation/NSBundle", diff --git a/framework-crates/objc2-messages/Cargo.toml b/framework-crates/objc2-messages/Cargo.toml index 44ddcc638..7eae3ccd7 100644 --- a/framework-crates/objc2-messages/Cargo.toml +++ b/framework-crates/objc2-messages/Cargo.toml @@ -63,6 +63,7 @@ default = [ "MSStickerBrowserViewController", "MSStickerBrowserViewDataSource", "MSStickerView", + "MSUPIRequest", "MessagesDefines", "block2", "objc2-core-foundation", @@ -121,4 +122,8 @@ MSStickerView = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", ] +MSUPIRequest = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSString", +] MessagesDefines = [] diff --git a/framework-crates/objc2-metal-fx/src/lib.rs b/framework-crates/objc2-metal-fx/src/lib.rs index a81615814..69518962a 100644 --- a/framework-crates/objc2-metal-fx/src/lib.rs +++ b/framework-crates/objc2-metal-fx/src/lib.rs @@ -9,6 +9,7 @@ #![cfg_attr(docsrs, feature(doc_cfg))] // Update in Cargo.toml as well. #![doc(html_root_url = "https://docs.rs/objc2-metal-fx/0.3.2")] +#![recursion_limit = "256"] #[cfg(feature = "alloc")] extern crate alloc; diff --git a/framework-crates/objc2-metal-fx/translation-config.toml b/framework-crates/objc2-metal-fx/translation-config.toml index 3c6dfa4a1..f6fcdf7b6 100644 --- a/framework-crates/objc2-metal-fx/translation-config.toml +++ b/framework-crates/objc2-metal-fx/translation-config.toml @@ -1,6 +1,7 @@ framework = "MetalFX" crate = "objc2-metal-fx" required-crates = ["objc2", "objc2-foundation", "objc2-metal"] +custom-lib-rs = true macos = "13.0" maccatalyst = "16.0" ios = "16.0" diff --git a/framework-crates/objc2-metal-performance-shaders-graph/Cargo.toml b/framework-crates/objc2-metal-performance-shaders-graph/Cargo.toml index 929311ae6..290560403 100644 --- a/framework-crates/objc2-metal-performance-shaders-graph/Cargo.toml +++ b/framework-crates/objc2-metal-performance-shaders-graph/Cargo.toml @@ -111,6 +111,7 @@ MPSGraph = [ "objc2-foundation/NSError", "objc2-foundation/NSObject", "objc2-foundation/NSString", + "objc2-metal/MTL4CommandQueue", "objc2-metal/MTLCommandQueue", "objc2-metal/MTLEvent", ] @@ -149,6 +150,7 @@ MPSGraphExecutable = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", "objc2-foundation/NSURL", + "objc2-metal/MTL4CommandQueue", "objc2-metal/MTLCommandQueue", "objc2-metal/MTLEvent", ] diff --git a/framework-crates/objc2-metal-performance-shaders/Cargo.toml b/framework-crates/objc2-metal-performance-shaders/Cargo.toml index 4468fe2bd..c342f3eeb 100644 --- a/framework-crates/objc2-metal-performance-shaders/Cargo.toml +++ b/framework-crates/objc2-metal-performance-shaders/Cargo.toml @@ -69,7 +69,11 @@ default = [ "MPSCommandBuffer", "MPSCore", "MPSCoreTypes", + "MPSFColorConversion", + "MPSFunction", "MPSFunctionConstantIndices", + "MPSFunctionTypes", + "MPSFunctions", "MPSImage", "MPSImageConversion", "MPSImageConvolution", @@ -305,7 +309,23 @@ MPSCoreTypes = [ "objc2-metal/MTLDevice", "objc2-metal/MTLTypes", ] +MPSFColorConversion = [ + "objc2-foundation/NSObject", + "objc2-metal/MTLAllocation", + "objc2-metal/MTLResource", + "objc2-metal/MTLTexture", +] +MPSFunction = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSZone", + "objc2-metal/MTLDevice", + "objc2-metal/MTLLibrary", +] MPSFunctionConstantIndices = [] +MPSFunctionTypes = [] +MPSFunctions = [] MPSImage = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", @@ -598,6 +618,8 @@ MPSNDArrayIdentity = [ "objc2-foundation/NSCoder", "objc2-foundation/NSObject", "objc2-foundation/NSValue", + "objc2-metal/MTL4CommandEncoder", + "objc2-metal/MTL4ComputeCommandEncoder", "objc2-metal/MTLCommandBuffer", "objc2-metal/MTLCommandEncoder", "objc2-metal/MTLComputeCommandEncoder", @@ -608,6 +630,8 @@ MPSNDArrayKernel = [ "objc2-foundation/NSCoder", "objc2-foundation/NSObject", "objc2-foundation/NSZone", + "objc2-metal/MTL4CommandEncoder", + "objc2-metal/MTL4ComputeCommandEncoder", "objc2-metal/MTLCommandBuffer", "objc2-metal/MTLCommandEncoder", "objc2-metal/MTLComputeCommandEncoder", diff --git a/framework-crates/objc2-metal/Cargo.toml b/framework-crates/objc2-metal/Cargo.toml index 231566218..d7fb4399d 100644 --- a/framework-crates/objc2-metal/Cargo.toml +++ b/framework-crates/objc2-metal/Cargo.toml @@ -490,6 +490,7 @@ MTLSampler = [ MTLStageInputOutputDescriptor = ["objc2-foundation/NSObject"] MTLTensor = [ "bitflags", + "objc2-foundation/NSArray", "objc2-foundation/NSError", "objc2-foundation/NSObject", "objc2-foundation/NSString", diff --git a/framework-crates/objc2-metal/tests/runs_with_core_graphics.rs b/framework-crates/objc2-metal/tests/runs_with_core_graphics.rs index 41e46b16f..356512a44 100644 --- a/framework-crates/objc2-metal/tests/runs_with_core_graphics.rs +++ b/framework-crates/objc2-metal/tests/runs_with_core_graphics.rs @@ -18,6 +18,7 @@ fn get_all() { #[test] #[cfg(target_os = "macos")] #[cfg(target_arch = "aarch64")] // Workaround to not try to compile this with 10.12 SDK +#[allow(deprecated)] fn get_all_with_observer() { use objc2::rc::autoreleasepool; use objc2_foundation::NSObjectProtocol; diff --git a/framework-crates/objc2-nearby-interaction/Cargo.toml b/framework-crates/objc2-nearby-interaction/Cargo.toml index 32c0489ff..b9b45eb9a 100644 --- a/framework-crates/objc2-nearby-interaction/Cargo.toml +++ b/framework-crates/objc2-nearby-interaction/Cargo.toml @@ -67,7 +67,10 @@ NIConfiguration = [ "objc2-foundation/NSObject", "objc2-foundation/NSUUID", ] -NIDLTDOAMeasurement = ["objc2-foundation/NSObject"] +NIDLTDOAMeasurement = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSValue", +] NIDeviceCapability = [] NIError = [ "objc2-foundation/NSError", diff --git a/framework-crates/objc2-open-directory/Cargo.toml b/framework-crates/objc2-open-directory/Cargo.toml index 5117729a6..b4d91788a 100644 --- a/framework-crates/objc2-open-directory/Cargo.toml +++ b/framework-crates/objc2-open-directory/Cargo.toml @@ -57,6 +57,7 @@ default = [ "CFOpenDirectoryConstants", "ODAttributeMap", "ODConfiguration", + "ODContext", "ODMappings", "ODModuleEntry", "ODNode", @@ -91,6 +92,7 @@ ODConfiguration = [ "objc2-foundation/NSError", "objc2-foundation/NSString", ] +ODContext = [] ODMappings = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", diff --git a/framework-crates/objc2-osa-kit/Cargo.toml b/framework-crates/objc2-osa-kit/Cargo.toml index beadf72d9..21ab7850f 100644 --- a/framework-crates/objc2-osa-kit/Cargo.toml +++ b/framework-crates/objc2-osa-kit/Cargo.toml @@ -91,6 +91,7 @@ OSAScriptView = [ "objc2-app-kit/NSTextContent", "objc2-app-kit/NSTextInputClient", "objc2-app-kit/NSTextView", + "objc2-app-kit/NSTextViewportLayoutController", "objc2-app-kit/NSUserInterfaceItemIdentification", "objc2-app-kit/NSUserInterfaceValidation", "objc2-app-kit/NSView", diff --git a/framework-crates/objc2-pass-kit/Cargo.toml b/framework-crates/objc2-pass-kit/Cargo.toml index 6ea97cd3c..679cee132 100644 --- a/framework-crates/objc2-pass-kit/Cargo.toml +++ b/framework-crates/objc2-pass-kit/Cargo.toml @@ -110,8 +110,6 @@ default = [ "PKPassLibrary", "PKPassRelevantDate", "PKPass_Types", - "PKPayLaterValidator", - "PKPayLaterView", "PKPayment", "PKPaymentAuthorizationController", "PKPaymentAuthorizationViewController", @@ -230,6 +228,7 @@ PKIdentityButton = [] PKIdentityDocument = ["objc2-foundation/NSData"] PKIdentityDocumentDescriptor = [ "objc2-foundation/NSArray", + "objc2-foundation/NSData", "objc2-foundation/NSString", ] PKIdentityElement = ["objc2-foundation/NSObject"] @@ -273,14 +272,13 @@ PKPassLibrary = [ "objc2-foundation/NSError", "objc2-foundation/NSSet", "objc2-foundation/NSString", + "objc2-foundation/NSURL", ] PKPassRelevantDate = [ "objc2-foundation/NSDate", "objc2-foundation/NSDateInterval", ] PKPass_Types = [] -PKPayLaterValidator = [] -PKPayLaterView = [] PKPayment = [] PKPaymentAuthorizationController = [ "objc2-foundation/NSArray", diff --git a/framework-crates/objc2-pencil-kit/Cargo.toml b/framework-crates/objc2-pencil-kit/Cargo.toml index e400befea..7d53bd87d 100644 --- a/framework-crates/objc2-pencil-kit/Cargo.toml +++ b/framework-crates/objc2-pencil-kit/Cargo.toml @@ -24,6 +24,7 @@ objc2-core-foundation = { workspace = true, optional = true, features = [ ] } objc2-core-graphics = { workspace = true, optional = true, features = [ "CGColor", + "CGPath", "objc2", ] } objc2-foundation = { workspace = true, features = ["alloc"] } @@ -60,6 +61,7 @@ default = [ "PKStroke", "PKStrokePath", "PKStrokePoint", + "PKStrokeRenderState", "PKTool", "PKToolPickerEraserItem", "PKToolPickerInkingItem", @@ -99,16 +101,19 @@ PKLassoTool = ["objc2-foundation/NSObject"] PKStroke = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", + "objc2-foundation/NSUUID", ] PKStrokePath = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSObject", + "objc2-foundation/NSUUID", ] PKStrokePoint = [ "objc2-foundation/NSDate", "objc2-foundation/NSObject", ] +PKStrokeRenderState = ["objc2-foundation/NSObject"] PKTool = ["objc2-foundation/NSObject"] PKToolPickerEraserItem = ["objc2-foundation/NSObject"] PKToolPickerInkingItem = [ diff --git a/framework-crates/objc2-photos-ui/Cargo.toml b/framework-crates/objc2-photos-ui/Cargo.toml index f7446bcbc..e74f54a8d 100644 --- a/framework-crates/objc2-photos-ui/Cargo.toml +++ b/framework-crates/objc2-photos-ui/Cargo.toml @@ -51,6 +51,7 @@ objc2-app-kit = { workspace = true, optional = true, features = [ objc2-photos = { workspace = true, optional = true, features = [ "PHAdjustmentData", "PHAsset", + "PHAssetCollection", "PHCloudIdentifier", "PHCollection", "PHContentEditingInput", @@ -80,12 +81,16 @@ default = [ "std", "PHContentEditingController", "PHLivePhotoView", + "PHPhotoLibrary_PhotosUISupport", "PHPicker", "PHProjectExtensionContext", "PHProjectExtensionController", "PHProjectInfo", "PHProjectTypeDescription", "PHProjectTypeDescriptionDataSource", + "PHSharedAlbumCreationViewController", + "PHSharedAlbumCustomizationViewController", + "PHSharedAlbumPostingViewController", "PhotosUITypes", "bitflags", "block2", @@ -112,6 +117,7 @@ PHLivePhotoView = [ "objc2-foundation/NSObject", "objc2-foundation/objc2-core-foundation", ] +PHPhotoLibrary_PhotosUISupport = [] PHPicker = [ "bitflags", "objc2-foundation/NSArray", @@ -147,4 +153,21 @@ PHProjectTypeDescriptionDataSource = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSString", ] +PHSharedAlbumCreationViewController = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] +PHSharedAlbumCustomizationViewController = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +PHSharedAlbumPostingViewController = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] PhotosUITypes = ["objc2-foundation/NSString"] diff --git a/framework-crates/objc2-photos/Cargo.toml b/framework-crates/objc2-photos/Cargo.toml index 35147fe51..265636aaf 100644 --- a/framework-crates/objc2-photos/Cargo.toml +++ b/framework-crates/objc2-photos/Cargo.toml @@ -69,16 +69,20 @@ default = [ "PHAdjustmentData", "PHAsset", "PHAssetChangeRequest", + "PHAssetCollection", "PHAssetCollectionChangeRequest", "PHAssetCreationRequest", + "PHAssetExtendedMetadata", "PHAssetResource", "PHAssetResourceManager", "PHAssetResourceUploadJob", "PHAssetResourceUploadJobChangeRequest", + "PHAssetResourceUploadJobOptions", "PHChange", "PHChangeRequest", "PHCloudIdentifier", "PHCollection", + "PHCollectionList", "PHCollectionListChangeRequest", "PHContentEditingInput", "PHContentEditingOutput", @@ -141,6 +145,13 @@ PHAssetChangeRequest = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] +PHAssetCollection = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSDate", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] PHAssetCollectionChangeRequest = [ "objc2-foundation/NSEnumerator", "objc2-foundation/NSIndexSet", @@ -154,9 +165,14 @@ PHAssetCreationRequest = [ "objc2-foundation/NSURL", "objc2-foundation/NSValue", ] +PHAssetExtendedMetadata = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSString", +] PHAssetResource = [ "objc2-foundation/NSArray", "objc2-foundation/NSString", + "objc2-foundation/NSValue", ] PHAssetResourceManager = [ "objc2-foundation/NSData", @@ -172,6 +188,7 @@ PHAssetResourceUploadJob = [ "objc2-foundation/NSURLRequest", ] PHAssetResourceUploadJobChangeRequest = ["objc2-foundation/NSURLRequest"] +PHAssetResourceUploadJobOptions = ["objc2-foundation/NSObject"] PHChange = [ "objc2-foundation/NSArray", "objc2-foundation/NSIndexSet", @@ -185,11 +202,15 @@ PHCloudIdentifier = [ "objc2-foundation/NSString", ] PHCollection = [ + "objc2-foundation/NSDate", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] +PHCollectionList = [ "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSObject", "objc2-foundation/NSString", - "objc2-foundation/NSURL", ] PHCollectionListChangeRequest = [ "objc2-foundation/NSEnumerator", diff --git a/framework-crates/objc2-replay-kit/Cargo.toml b/framework-crates/objc2-replay-kit/Cargo.toml index 96233e2d4..9ed6bcf8b 100644 --- a/framework-crates/objc2-replay-kit/Cargo.toml +++ b/framework-crates/objc2-replay-kit/Cargo.toml @@ -30,7 +30,6 @@ objc2-foundation = { workspace = true, features = ["alloc"] } [target.'cfg(target_os = "macos")'.dependencies] objc2-app-kit = { workspace = true, optional = true, features = [ - "NSImage", "NSKeyValueBinding", "NSNib", "NSResponder", @@ -86,13 +85,15 @@ RPBroadcastConfiguration = [] RPBroadcastExtension = [ "objc2-foundation/NSDictionary", "objc2-foundation/NSError", - "objc2-foundation/NSExtensionContext", "objc2-foundation/NSExtensionRequestHandling", "objc2-foundation/NSObject", "objc2-foundation/NSString", "objc2-foundation/NSURL", ] -RPError = ["objc2-foundation/NSString"] +RPError = [ + "objc2-foundation/NSError", + "objc2-foundation/NSString", +] RPPreviewViewController = [ "objc2-foundation/NSBundle", "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-safari-services/Cargo.toml b/framework-crates/objc2-safari-services/Cargo.toml index 0dd2cbe29..88e54329b 100644 --- a/framework-crates/objc2-safari-services/Cargo.toml +++ b/framework-crates/objc2-safari-services/Cargo.toml @@ -59,6 +59,7 @@ default = [ "SFSafariExtensionViewController", "SFSafariPage", "SFSafariPageProperties", + "SFSafariSettings", "SFSafariTab", "SFSafariToolbarItem", "SFSafariWindow", @@ -112,6 +113,10 @@ SFSafariPageProperties = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] +SFSafariSettings = [ + "objc2-foundation/NSError", + "objc2-foundation/NSString", +] SFSafariTab = [ "objc2-foundation/NSArray", "objc2-foundation/NSObject", diff --git a/framework-crates/objc2-screen-capture-kit/Cargo.toml b/framework-crates/objc2-screen-capture-kit/Cargo.toml index 053d51c6e..13ad9a00e 100644 --- a/framework-crates/objc2-screen-capture-kit/Cargo.toml +++ b/framework-crates/objc2-screen-capture-kit/Cargo.toml @@ -24,7 +24,12 @@ dispatch2 = { workspace = true, optional = true, features = [ ] } libc = { workspace = true, optional = true } objc2 = { workspace = true, features = ["std"] } +objc2-app-kit = { workspace = true, optional = true, features = [ + "NSResponder", + "NSWindow", +] } objc2-av-foundation = { workspace = true, optional = true, features = [ + "AVCaptureDevice", "AVMediaFormat", "AVVideoSettings", ] } @@ -59,16 +64,20 @@ targets = [ [features] default = [ "std", + "SCClipBufferingOutput", "SCContentSharingPicker", "SCError", + "SCRecordingEditor", "SCRecordingOutput", "SCScreenshotManager", "SCShareableContent", "SCStream", + "SCVideoEffectOutput", "bitflags", "block2", "dispatch2", "libc", + "objc2-app-kit", "objc2-av-foundation", "objc2-core-foundation", "objc2-core-graphics", @@ -81,6 +90,7 @@ bitflags = ["dep:bitflags"] block2 = ["dep:block2"] dispatch2 = ["dep:dispatch2"] libc = ["dep:libc"] +objc2-app-kit = ["dep:objc2-app-kit"] objc2-av-foundation = ["dep:objc2-av-foundation"] objc2-core-foundation = ["dep:objc2-core-foundation"] objc2-core-graphics = ["dep:objc2-core-graphics"] @@ -88,6 +98,11 @@ objc2-core-media = ["dep:objc2-core-media"] objc2-uniform-type-identifiers = ["dep:objc2-uniform-type-identifiers"] unstable-darwin-objc = [] +SCClipBufferingOutput = [ + "objc2-foundation/NSDate", + "objc2-foundation/NSError", + "objc2-foundation/NSURL", +] SCContentSharingPicker = [ "bitflags", "objc2-foundation/NSArray", @@ -95,7 +110,14 @@ SCContentSharingPicker = [ "objc2-foundation/NSString", "objc2-foundation/NSValue", ] -SCError = ["objc2-foundation/NSString"] +SCError = [ + "objc2-foundation/NSError", + "objc2-foundation/NSString", +] +SCRecordingEditor = [ + "objc2-foundation/NSError", + "objc2-foundation/NSURL", +] SCRecordingOutput = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", @@ -116,3 +138,4 @@ SCStream = [ "objc2-foundation/NSError", "objc2-foundation/NSString", ] +SCVideoEffectOutput = [] diff --git a/framework-crates/objc2-sensitive-content-analysis/Cargo.toml b/framework-crates/objc2-sensitive-content-analysis/Cargo.toml index a1dcfbe47..72b5bd7a8 100644 --- a/framework-crates/objc2-sensitive-content-analysis/Cargo.toml +++ b/framework-crates/objc2-sensitive-content-analysis/Cargo.toml @@ -66,7 +66,10 @@ objc2-core-video = ["dep:objc2-core-video"] objc2-video-toolbox = ["dep:objc2-video-toolbox"] unstable-darwin-objc = [] -SCSensitivityAnalysis = [] +SCSensitivityAnalysis = [ + "objc2-foundation/NSSet", + "objc2-foundation/NSString", +] SCSensitivityAnalyzer = [ "objc2-foundation/NSError", "objc2-foundation/NSProgress", diff --git a/framework-crates/objc2-ui-kit/Cargo.toml b/framework-crates/objc2-ui-kit/Cargo.toml index 9c38a13c0..759d7f730 100644 --- a/framework-crates/objc2-ui-kit/Cargo.toml +++ b/framework-crates/objc2-ui-kit/Cargo.toml @@ -42,7 +42,10 @@ objc2-core-graphics = { workspace = true, optional = true, features = [ "CGPath", "objc2", ] } -objc2-core-location = { workspace = true, optional = true, features = ["CLRegion"] } +objc2-core-location = { workspace = true, optional = true, features = [ + "CLBody", + "CLRegion", +] } objc2-core-text = { workspace = true, optional = true, features = [ "CTFont", "CTFontDescriptor", @@ -67,6 +70,9 @@ objc2-quartz-core = { workspace = true, optional = true, features = [ "objc2-core-foundation", ] } +[target.'cfg(not(target_os = "tvos"))'.dependencies] +objc2-core-motion = { workspace = true, optional = true, features = ["CMBody"] } + [package.metadata.docs.rs] default-target = "aarch64-apple-ios" rustc-args = ["--cfg", "docsrs"] # Fix cross-crate link to objc2::topics @@ -114,7 +120,9 @@ default = [ "NSTextSelection", "NSTextSelectionNavigation", "NSTextStorage", + "NSTextTable", "NSTextViewportLayoutController", + "NSTextViewportRenderingSurface", "NSToolbar_UIKitAdditions", "NSTouchBar_UIKitAdditions", "NSUserActivity_NSItemProvider", @@ -159,6 +167,7 @@ default = [ "UIBarButtonItemGroup", "UIBarCommon", "UIBarItem", + "UIBarMinimization", "UIBehavioralStyle", "UIBezierPath", "UIBlurEffect", @@ -307,6 +316,7 @@ default = [ "UILocalNotification", "UILocalizedIndexedCollation", "UILongPressGestureRecognizer", + "UILookToScrollInteraction", "UIMailConversationContext", "UIMailConversationEntry", "UIMainMenuSystem", @@ -340,6 +350,7 @@ default = [ "UIPasteControl", "UIPasteboard", "UIPencilInteraction", + "UIPhotoSearchSuggestion", "UIPickerView", "UIPinchGestureRecognizer", "UIPointerAccessory", @@ -375,7 +386,10 @@ default = [ "UIResponder_UIActivityItemsConfiguration", "UIRotationGestureRecognizer", "UIScene", + "UISceneAccessory", + "UISceneAccessoryRegistration", "UISceneActivationConditions", + "UISceneClosureConfirmation", "UISceneConfiguration", "UISceneDefinitions", "UISceneDestructionCondition", @@ -534,6 +548,7 @@ default = [ "objc2-core-graphics", "objc2-core-image", "objc2-core-location", + "objc2-core-motion", "objc2-core-text", "objc2-quartz-core", "objc2-user-notifications", @@ -548,6 +563,7 @@ objc2-core-foundation = ["dep:objc2-core-foundation"] objc2-core-graphics = ["dep:objc2-core-graphics"] objc2-core-image = ["dep:objc2-core-image"] objc2-core-location = ["dep:objc2-core-location"] +objc2-core-motion = ["dep:objc2-core-motion"] objc2-core-text = ["dep:objc2-core-text"] objc2-quartz-core = ["dep:objc2-quartz-core"] objc2-symbols = ["dep:objc2-symbols"] @@ -712,7 +728,9 @@ NSTextStorage = [ "objc2-foundation/NSRange", "objc2-foundation/NSString", ] +NSTextTable = ["objc2-foundation/NSObject"] NSTextViewportLayoutController = [] +NSTextViewportRenderingSurface = [] NSToolbar_UIKitAdditions = [] NSTouchBar_UIKitAdditions = [] NSUserActivity_NSItemProvider = [] @@ -863,6 +881,7 @@ UIBarItem = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] +UIBarMinimization = ["objc2-foundation/NSObject"] UIBehavioralStyle = [] UIBezierPath = ["objc2-foundation/NSObject"] UIBlurEffect = ["objc2-foundation/NSObject"] @@ -1375,6 +1394,7 @@ UILocalizedIndexedCollation = [ "objc2-foundation/NSString", ] UILongPressGestureRecognizer = ["objc2-foundation/NSDate"] +UILookToScrollInteraction = [] UIMailConversationContext = [ "objc2-foundation/NSSet", "objc2-foundation/NSString", @@ -1496,6 +1516,10 @@ UIPasteboard = [ "objc2-foundation/NSURL", ] UIPencilInteraction = ["objc2-foundation/NSDate"] +UIPhotoSearchSuggestion = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSString", +] UIPickerView = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSObject", @@ -1603,12 +1627,19 @@ UIScene = [ "objc2-foundation/NSURL", "objc2-foundation/NSUserActivity", ] +UISceneAccessory = [] +UISceneAccessoryRegistration = [] UISceneActivationConditions = [ "objc2-foundation/NSObject", "objc2-foundation/NSPredicate", "objc2-foundation/NSString", "objc2-foundation/NSUserActivity", ] +UISceneClosureConfirmation = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] UISceneConfiguration = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", @@ -1818,6 +1849,7 @@ UITextChecker = [ "objc2-foundation/NSArray", "objc2-foundation/NSRange", "objc2-foundation/NSString", + "objc2-foundation/NSTextCheckingResult", ] UITextCursorDropPositionAnimator = [] UITextCursorView = [] @@ -1920,6 +1952,7 @@ UITextSelectionDisplayInteraction = ["objc2-foundation/NSArray"] UITextSelectionHandleView = [] UITextSelectionHighlightView = ["objc2-foundation/NSArray"] UITextView = [ + "bitflags", "objc2-foundation/NSArray", "objc2-foundation/NSAttributedString", "objc2-foundation/NSDictionary", @@ -2061,6 +2094,7 @@ UIWritingToolsCoordinator = [ "objc2-foundation/NSAttributedString", "objc2-foundation/NSRange", "objc2-foundation/NSString", + "objc2-foundation/NSTextCheckingResult", "objc2-foundation/NSUUID", "objc2-foundation/NSValue", ] diff --git a/framework-crates/objc2-ui-kit/translation-config.toml b/framework-crates/objc2-ui-kit/translation-config.toml index a35b3c39f..216ff02ec 100644 --- a/framework-crates/objc2-ui-kit/translation-config.toml +++ b/framework-crates/objc2-ui-kit/translation-config.toml @@ -132,6 +132,8 @@ class.UITraitSplitViewControllerLayoutEnvironment.main-thread-only = true class.UITraitHDRHeadroomUsageLimit.main-thread-only = true class.UITraitResolvesNaturalAlignmentWithBaseWritingDirection.main-thread-only = true class.UIDocument.main-thread-only = true +class.UILookToScrollInteraction.main-thread-only = true +class.UITraitSystemPrefersReducedResourceUsage.main-thread-only = true # We don't really want objc2-ui-kit to depend on objc2-core-text class.NSAdaptiveImageGlyph.skipped-protocols = ["CTAdaptiveImageProviding"] diff --git a/framework-crates/objc2-virtualization/Cargo.toml b/framework-crates/objc2-virtualization/Cargo.toml index a39331fb2..c737cf311 100644 --- a/framework-crates/objc2-virtualization/Cargo.toml +++ b/framework-crates/objc2-virtualization/Cargo.toml @@ -38,6 +38,10 @@ objc2-core-foundation = { workspace = true, optional = true, features = [ "objc2", ] } objc2-foundation = { workspace = true, features = ["alloc"] } +objc2-security = { workspace = true, optional = true, features = [ + "SecBase", + "objc2", +] } [package.metadata.docs.rs] default-target = "aarch64-apple-darwin" @@ -59,6 +63,12 @@ default = [ "VZConsoleDevice", "VZConsoleDeviceConfiguration", "VZConsolePortConfiguration", + "VZCustomVirtioDevice", + "VZCustomVirtioDeviceConfiguration", + "VZCustomVirtioDeviceConfigurationDelegate", + "VZCustomVirtioDeviceDelegate", + "VZCustomVirtioDeviceDelegateProvider", + "VZCustomVirtioDeviceProvider", "VZDefines", "VZDirectoryShare", "VZDirectorySharingDevice", @@ -67,6 +77,11 @@ default = [ "VZDiskImageStorageDeviceAttachment", "VZDiskSynchronizationMode", "VZEFIBootLoader", + "VZEFISignature", + "VZEFISignatureDatabaseConfiguration", + "VZEFISignatureList", + "VZEFISignatureSHA256Hash", + "VZEFISignatureX509Certificate", "VZEFIVariableStore", "VZEntropyDeviceConfiguration", "VZError", @@ -79,6 +94,8 @@ default = [ "VZGraphicsDeviceConfiguration", "VZGraphicsDisplay", "VZGraphicsDisplayConfiguration", + "VZGuestMemoryMapping", + "VZGuestProvisioningOptions", "VZHostAudioInputStreamSource", "VZHostAudioOutputStreamSink", "VZKeyboardConfiguration", @@ -93,6 +110,7 @@ default = [ "VZMacGraphicsDeviceConfiguration", "VZMacGraphicsDisplay", "VZMacGraphicsDisplayConfiguration", + "VZMacGuestProvisioningOptions", "VZMacHardwareModel", "VZMacKeyboardConfiguration", "VZMacMachineIdentifier", @@ -108,6 +126,7 @@ default = [ "VZMultipleDirectoryShare", "VZNATNetworkDeviceAttachment", "VZNVMExpressControllerDeviceConfiguration", + "VZNegotiatedVirtioFeatureSet", "VZNetworkBlockDeviceStorageDeviceAttachment", "VZNetworkDevice", "VZNetworkDeviceAttachment", @@ -131,6 +150,8 @@ default = [ "VZUSBKeyboardConfiguration", "VZUSBMassStorageDevice", "VZUSBMassStorageDeviceConfiguration", + "VZUSBPassthroughDevice", + "VZUSBPassthroughDeviceConfiguration", "VZUSBScreenCoordinatePointingDeviceConfiguration", "VZVirtioBlockDeviceConfiguration", "VZVirtioConsoleDevice", @@ -140,7 +161,9 @@ default = [ "VZVirtioConsolePortArray", "VZVirtioConsolePortConfiguration", "VZVirtioConsolePortConfigurationArray", + "VZVirtioDeviceSpecificConfiguration", "VZVirtioEntropyDeviceConfiguration", + "VZVirtioFeatureSet", "VZVirtioFileSystemDevice", "VZVirtioFileSystemDeviceConfiguration", "VZVirtioGraphicsDevice", @@ -148,6 +171,10 @@ default = [ "VZVirtioGraphicsScanout", "VZVirtioGraphicsScanoutConfiguration", "VZVirtioNetworkDeviceConfiguration", + "VZVirtioQueue", + "VZVirtioQueueElement", + "VZVirtioSharedMemoryRegion", + "VZVirtioSharedMemoryRegionConfiguration", "VZVirtioSocketConnection", "VZVirtioSocketDevice", "VZVirtioSocketDeviceConfiguration", @@ -171,6 +198,7 @@ default = [ "dispatch2", "objc2-app-kit", "objc2-core-foundation", + "objc2-security", ] std = ["alloc"] alloc = [] @@ -179,6 +207,7 @@ block2 = ["dep:block2"] dispatch2 = ["dep:dispatch2"] objc2-app-kit = ["dep:objc2-app-kit"] objc2-core-foundation = ["dep:objc2-core-foundation"] +objc2-security = ["dep:objc2-security"] unstable-darwin-objc = [] VZAudioDeviceConfiguration = ["objc2-foundation/NSObject"] @@ -193,6 +222,18 @@ VZBridgedNetworkInterface = [ VZConsoleDevice = [] VZConsoleDeviceConfiguration = ["objc2-foundation/NSObject"] VZConsolePortConfiguration = ["objc2-foundation/NSObject"] +VZCustomVirtioDevice = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", +] +VZCustomVirtioDeviceConfiguration = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] +VZCustomVirtioDeviceConfigurationDelegate = [] +VZCustomVirtioDeviceDelegate = ["objc2-foundation/NSData"] +VZCustomVirtioDeviceDelegateProvider = [] +VZCustomVirtioDeviceProvider = [] VZDefines = [] VZDirectoryShare = [] VZDirectorySharingDevice = [] @@ -207,6 +248,22 @@ VZDiskImageStorageDeviceAttachment = [ ] VZDiskSynchronizationMode = [] VZEFIBootLoader = ["objc2-foundation/NSObject"] +VZEFISignature = ["objc2-foundation/NSObject"] +VZEFISignatureDatabaseConfiguration = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSObject", +] +VZEFISignatureList = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSError", + "objc2-foundation/NSObject", + "objc2-foundation/NSURL", +] +VZEFISignatureSHA256Hash = [ + "objc2-foundation/NSData", + "objc2-foundation/NSObject", +] +VZEFISignatureX509Certificate = ["objc2-foundation/NSObject"] VZEFIVariableStore = [ "bitflags", "objc2-foundation/NSError", @@ -232,6 +289,11 @@ VZGraphicsDevice = ["objc2-foundation/NSArray"] VZGraphicsDeviceConfiguration = ["objc2-foundation/NSObject"] VZGraphicsDisplay = ["objc2-foundation/NSError"] VZGraphicsDisplayConfiguration = ["objc2-foundation/NSObject"] +VZGuestMemoryMapping = [] +VZGuestProvisioningOptions = [ + "objc2-foundation/NSError", + "objc2-foundation/NSObject", +] VZHostAudioInputStreamSource = [] VZHostAudioOutputStreamSink = [] VZKeyboardConfiguration = ["objc2-foundation/NSObject"] @@ -270,6 +332,10 @@ VZMacGraphicsDisplayConfiguration = [ "objc2-foundation/NSObject", "objc2-foundation/objc2-core-foundation", ] +VZMacGuestProvisioningOptions = [ + "objc2-foundation/NSObject", + "objc2-foundation/NSString", +] VZMacHardwareModel = [ "objc2-foundation/NSData", "objc2-foundation/NSObject", @@ -292,7 +358,7 @@ VZMacOSRestoreImage = [ "objc2-foundation/NSString", "objc2-foundation/NSURL", ] -VZMacOSVirtualMachineStartOptions = [] +VZMacOSVirtualMachineStartOptions = ["objc2-foundation/NSError"] VZMacPlatformConfiguration = ["objc2-foundation/NSObject"] VZMacTrackpadConfiguration = ["objc2-foundation/NSObject"] VZMemoryBalloonDevice = [] @@ -304,6 +370,7 @@ VZMultipleDirectoryShare = [ ] VZNATNetworkDeviceAttachment = [] VZNVMExpressControllerDeviceConfiguration = ["objc2-foundation/NSObject"] +VZNegotiatedVirtioFeatureSet = [] VZNetworkBlockDeviceStorageDeviceAttachment = [ "objc2-foundation/NSDate", "objc2-foundation/NSError", @@ -337,6 +404,8 @@ VZUSBDeviceConfiguration = ["objc2-foundation/NSUUID"] VZUSBKeyboardConfiguration = ["objc2-foundation/NSObject"] VZUSBMassStorageDevice = [] VZUSBMassStorageDeviceConfiguration = ["objc2-foundation/NSObject"] +VZUSBPassthroughDevice = ["objc2-foundation/NSError"] +VZUSBPassthroughDeviceConfiguration = ["objc2-foundation/NSObject"] VZUSBScreenCoordinatePointingDeviceConfiguration = ["objc2-foundation/NSObject"] VZVirtioBlockDeviceConfiguration = [ "objc2-foundation/NSError", @@ -353,7 +422,12 @@ VZVirtioConsolePortConfiguration = [ "objc2-foundation/NSString", ] VZVirtioConsolePortConfigurationArray = ["objc2-foundation/NSObject"] +VZVirtioDeviceSpecificConfiguration = [ + "objc2-foundation/NSData", + "objc2-foundation/NSObject", +] VZVirtioEntropyDeviceConfiguration = ["objc2-foundation/NSObject"] +VZVirtioFeatureSet = ["objc2-foundation/NSObject"] VZVirtioFileSystemDevice = ["objc2-foundation/NSString"] VZVirtioFileSystemDeviceConfiguration = [ "objc2-foundation/NSError", @@ -368,6 +442,14 @@ VZVirtioGraphicsDeviceConfiguration = [ VZVirtioGraphicsScanout = [] VZVirtioGraphicsScanoutConfiguration = ["objc2-foundation/NSObject"] VZVirtioNetworkDeviceConfiguration = ["objc2-foundation/NSObject"] +VZVirtioQueue = [] +VZVirtioQueueElement = [ + "objc2-foundation/NSArray", + "objc2-foundation/NSData", + "objc2-foundation/NSError", +] +VZVirtioSharedMemoryRegion = ["objc2-foundation/NSError"] +VZVirtioSharedMemoryRegionConfiguration = ["objc2-foundation/NSObject"] VZVirtioSocketConnection = [] VZVirtioSocketDevice = ["objc2-foundation/NSError"] VZVirtioSocketDeviceConfiguration = ["objc2-foundation/NSObject"] @@ -390,6 +472,7 @@ VZVirtualMachineConfiguration = [ "objc2-foundation/NSArray", "objc2-foundation/NSError", "objc2-foundation/NSObject", + "objc2-foundation/NSString", ] VZVirtualMachineDelegate = ["objc2-foundation/NSError"] VZVirtualMachineStartOptions = [] diff --git a/framework-crates/objc2-virtualization/src/lib.rs b/framework-crates/objc2-virtualization/src/lib.rs index 266e4228e..4ba0e0a2f 100644 --- a/framework-crates/objc2-virtualization/src/lib.rs +++ b/framework-crates/objc2-virtualization/src/lib.rs @@ -9,6 +9,7 @@ #![cfg_attr(docsrs, feature(doc_cfg))] // Update in Cargo.toml as well. #![doc(html_root_url = "https://docs.rs/objc2-virtualization/0.3.2")] +#![recursion_limit = "256"] #[cfg(feature = "alloc")] extern crate alloc; diff --git a/framework-crates/objc2-virtualization/translation-config.toml b/framework-crates/objc2-virtualization/translation-config.toml index 4e84ac7e3..ce23009e0 100644 --- a/framework-crates/objc2-virtualization/translation-config.toml +++ b/framework-crates/objc2-virtualization/translation-config.toml @@ -1,6 +1,7 @@ framework = "Virtualization" crate = "objc2-virtualization" required-crates = ["objc2", "objc2-foundation"] +custom-lib-rs = true macos = "11.0" # Explicitly not available on Mac Catalyst (modulemap contains `requires !maccatalyst`). @@ -12,3 +13,6 @@ class.VZMACAddress.methods.ethernetAddress.skipped = true # Needs `vmnet_network_ref` from `vmnet` class.VZVmnetNetworkDeviceAttachment.methods."initWithNetwork:".skipped = true class.VZVmnetNetworkDeviceAttachment.methods.network.skipped = true + +# Needs `AAUSBAccessory` from newer `AccessoryAccess` framework +class.VZUSBPassthroughDeviceConfiguration.methods."initWithDevice:".skipped = true diff --git a/framework-crates/objc2-web-kit/Cargo.toml b/framework-crates/objc2-web-kit/Cargo.toml index ba3bd68cd..77d7d70d3 100644 --- a/framework-crates/objc2-web-kit/Cargo.toml +++ b/framework-crates/objc2-web-kit/Cargo.toml @@ -211,16 +211,22 @@ default = [ "WKContentRuleList", "WKContentRuleListStore", "WKContentWorld", + "WKContentWorldConfiguration", "WKContextMenuElementInfo", + "WKDOMNodeSnapshot", "WKDataDetectorTypes", "WKDownload", "WKDownloadDelegate", "WKError", "WKFindConfiguration", "WKFindResult", + "WKFormInfo", "WKFoundation", "WKFrameInfo", "WKHTTPCookieStore", + "WKImmersiveEnvironment", + "WKImmersiveEnvironmentDelegate", + "WKJSHandle", "WKNavigation", "WKNavigationAction", "WKNavigationDelegate", @@ -723,7 +729,9 @@ WKContentRuleListStore = [ "objc2-foundation/NSURL", ] WKContentWorld = ["objc2-foundation/NSString"] +WKContentWorldConfiguration = ["objc2-foundation/NSObject"] WKContextMenuElementInfo = [] +WKDOMNodeSnapshot = [] WKDataDetectorTypes = [] WKDownload = [ "objc2-foundation/NSData", @@ -744,6 +752,11 @@ WKDownloadDelegate = [ WKError = ["objc2-foundation/NSString"] WKFindConfiguration = ["objc2-foundation/NSObject"] WKFindResult = ["objc2-foundation/NSObject"] +WKFormInfo = [ + "objc2-foundation/NSDictionary", + "objc2-foundation/NSString", + "objc2-foundation/NSURL", +] WKFoundation = [] WKFrameInfo = [ "objc2-foundation/NSObject", @@ -752,7 +765,11 @@ WKFrameInfo = [ WKHTTPCookieStore = [ "objc2-foundation/NSArray", "objc2-foundation/NSHTTPCookie", + "objc2-foundation/NSURL", ] +WKImmersiveEnvironment = [] +WKImmersiveEnvironmentDelegate = ["objc2-foundation/NSError"] +WKJSHandle = ["objc2-foundation/NSObject"] WKNavigation = [] WKNavigationAction = ["objc2-foundation/NSURLRequest"] WKNavigationDelegate = [ @@ -791,6 +808,7 @@ WKURLSchemeTask = [ ] WKUserContentController = [ "objc2-foundation/NSArray", + "objc2-foundation/NSData", "objc2-foundation/NSObject", "objc2-foundation/NSString", ] @@ -896,7 +914,10 @@ WKWebViewConfiguration = [ "objc2-foundation/NSObject", "objc2-foundation/NSString", ] -WKWebpagePreferences = [] +WKWebpagePreferences = [ + "objc2-foundation/NSString", + "objc2-foundation/NSURLRequest", +] WKWebsiteDataRecord = [ "objc2-foundation/NSSet", "objc2-foundation/NSString", diff --git a/generated b/generated index 86eb28648..6bea7010d 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit 86eb2864838472922c2b8baa0b999e42b96c4252 +Subproject commit 6bea7010d22efd692b20ebd41a37f061df316cd3