diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebbc43885..45376fc79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,19 +46,19 @@ env: --package=objc2-exception-helper # BEGIN AUTOMATICALLY GENERATED - FRAMEWORKS_MACOS_10_12: --package=objc2-accounts --package=objc2-audio-toolbox --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-location --package=objc2-core-media --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-web-kit - FRAMEWORKS_MACOS_10_13: --package=objc2-accounts --package=objc2-audio-toolbox --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_MACOS_11: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-business-chat --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_MACOS_12: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-business-chat --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_MACOS_13: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_MACOS_14: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_MACOS_15: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_IOS_10: --package=objc2-accounts --package=objc2-ad-support --package=objc2-audio-toolbox --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-call-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-external-accessory --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-social --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-user-notifications - FRAMEWORKS_IOS_17: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sensitive-content-analysis --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_TVOS_17: --package=objc2-accessibility --package=objc2-ad-support --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-tasks --package=objc2-cloud-kit --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sound-analysis --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision - FRAMEWORKS_MAC_CATALYST_17: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_VISIONOS_1: --package=objc2-accessibility --package=objc2-ad-services --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit - FRAMEWORKS_WATCHOS_10: --package=objc2-accessibility --package=objc2-authentication-services --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-call-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-location --package=objc2-core-media --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-extension-kit --package=objc2-foundation --package=objc2-game-kit --package=objc2-health-kit --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-photos-ui --package=objc2-sound-analysis --package=objc2-store-kit --package=objc2-symbols --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications + FRAMEWORKS_MACOS_10_12: --package=objc2-accounts --package=objc2-audio-toolbox --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-web-kit + FRAMEWORKS_MACOS_10_13: --package=objc2-accounts --package=objc2-audio-toolbox --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_MACOS_11: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-business-chat --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_MACOS_12: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-business-chat --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_MACOS_13: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_MACOS_14: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_MACOS_15: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-finder-sync --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-input-method-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-mail-kit --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-osa-kit --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-screen-capture-kit --package=objc2-screen-saver --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-system-extensions --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-virtualization --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_IOS_10: --package=objc2-accounts --package=objc2-ad-support --package=objc2-audio-toolbox --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-call-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-external-accessory --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-multipeer-connectivity --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-social --package=objc2-speech --package=objc2-store-kit --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-user-notifications + FRAMEWORKS_IOS_17: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sensitive-content-analysis --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_TVOS_17: --package=objc2-accessibility --package=objc2-ad-support --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-tasks --package=objc2-cloud-kit --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sound-analysis --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision + FRAMEWORKS_MAC_CATALYST_17: --package=objc2-accessibility --package=objc2-accounts --package=objc2-ad-services --package=objc2-ad-support --package=objc2-app-kit --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-automator --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-business-chat --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-core-wlan --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-exception-handling --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-ml-compute --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-open-directory --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sensitive-content-analysis --package=objc2-service-management --package=objc2-social --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_VISIONOS_1: --package=objc2-accessibility --package=objc2-ad-services --package=objc2-app-tracking-transparency --package=objc2-audio-toolbox --package=objc2-authentication-services --package=objc2-automatic-assessment-configuration --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-background-assets --package=objc2-background-tasks --package=objc2-call-kit --package=objc2-class-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-contacts-ui --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-image --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-event-kit-ui --package=objc2-extension-kit --package=objc2-external-accessory --package=objc2-file-provider --package=objc2-file-provider-ui --package=objc2-foundation --package=objc2-game-controller --package=objc2-game-kit --package=objc2-health-kit --package=objc2-identity-lookup --package=objc2-io-surface --package=objc2-link-presentation --package=objc2-local-authentication --package=objc2-local-authentication-embedded-ui --package=objc2-map-kit --package=objc2-media-player --package=objc2-metal --package=objc2-metal-fx --package=objc2-metal-kit --package=objc2-metal-performance-shaders --package=objc2-metal-performance-shaders-graph --package=objc2-metric-kit --package=objc2-multipeer-connectivity --package=objc2-natural-language --package=objc2-network-extension --package=objc2-photos --package=objc2-photos-ui --package=objc2-quartz-core --package=objc2-sound-analysis --package=objc2-speech --package=objc2-store-kit --package=objc2-symbols --package=objc2-system-configuration --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications --package=objc2-vision --package=objc2-web-kit + FRAMEWORKS_WATCHOS_10: --package=objc2-accessibility --package=objc2-authentication-services --package=objc2-av-foundation --package=objc2-av-kit --package=objc2-avf-audio --package=objc2-call-kit --package=objc2-cloud-kit --package=objc2-contacts --package=objc2-core-audio-types --package=objc2-core-bluetooth --package=objc2-core-data --package=objc2-core-foundation --package=objc2-core-graphics --package=objc2-core-location --package=objc2-core-media --package=objc2-core-midi --package=objc2-core-ml --package=objc2-core-motion --package=objc2-core-text --package=objc2-core-video --package=objc2-data-detection --package=objc2-device-check --package=objc2-event-kit --package=objc2-extension-kit --package=objc2-foundation --package=objc2-game-kit --package=objc2-health-kit --package=objc2-local-authentication --package=objc2-map-kit --package=objc2-media-player --package=objc2-natural-language --package=objc2-nearby-interaction --package=objc2-network-extension --package=objc2-photos-ui --package=objc2-sound-analysis --package=objc2-store-kit --package=objc2-symbols --package=objc2-ui-kit --package=objc2-uniform-type-identifiers --package=objc2-user-notifications FRAMEWORKS_GNUSTEP: --package=objc2-app-kit --package=objc2-foundation # END AUTOMATICALLY GENERATED diff --git a/Cargo.lock b/Cargo.lock index 03b5a1513..52ca58d09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -462,6 +462,7 @@ dependencies = [ "objc2", "objc2-core-audio-types", "objc2-core-foundation", + "objc2-core-midi", "objc2-foundation", ] @@ -540,6 +541,7 @@ dependencies = [ "objc2-audio-toolbox", "objc2-core-audio-types", "objc2-core-media", + "objc2-core-midi", "objc2-foundation", ] @@ -711,6 +713,17 @@ dependencies = [ "objc2-core-video", ] +[[package]] +name = "objc2-core-midi" +version = "0.2.2" +dependencies = [ + "bitflags", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] + [[package]] name = "objc2-core-ml" version = "0.2.2" @@ -1659,6 +1672,7 @@ dependencies = [ "objc2-core-image", "objc2-core-location", "objc2-core-media", + "objc2-core-midi", "objc2-core-ml", "objc2-core-motion", "objc2-core-text", diff --git a/crates/header-translator/src/availability.rs b/crates/header-translator/src/availability.rs index 95dda3aaf..9a6947ae3 100644 --- a/crates/header-translator/src/availability.rs +++ b/crates/header-translator/src/availability.rs @@ -213,7 +213,7 @@ impl Availability { "swift" => { _swift = Some(availability); } - "driverkit" => { + "driverkit" | "bridgeos" => { // Ignore } platform if platform.ends_with("_app_extension") => { diff --git a/crates/header-translator/src/id.rs b/crates/header-translator/src/id.rs index fd590fccd..d2ac61b46 100644 --- a/crates/header-translator/src/id.rs +++ b/crates/header-translator/src/id.rs @@ -532,11 +532,13 @@ impl ItemIdentifier> { let mut id = Self::with_name(entity.get_name(), entity, context); // union (unnamed at /Applications/Xcode.app/...) + // union (anonymous at /Applications/Xcode.app/...) // enum (unnamed at /Applications/Xcode.app/...) + // struct (unnamed at /Applications/Xcode.app/...) if id .name .as_deref() - .map(|name| name.contains(" (unnamed at")) + .map(|name| name.contains(" (unnamed at") || name.contains(" (anonymous at")) .unwrap_or(false) { id.name = None; diff --git a/crates/header-translator/src/rust_type.rs b/crates/header-translator/src/rust_type.rs index d6f79135e..2f65db60e 100644 --- a/crates/header-translator/src/rust_type.rs +++ b/crates/header-translator/src/rust_type.rs @@ -626,30 +626,38 @@ impl Ty { TypeKind::Double => Self::Primitive(Primitive::Double), TypeKind::Record => { let declaration = ty.get_declaration().expect("record declaration"); + let id = ItemIdentifier::new_optional(&declaration, context); - let fields = ty - .get_fields() - .expect("struct fields") - .into_iter() - .map(|field| { - Self::parse( - field.get_type().expect("struct field type"), - Lifetime::Unspecified, - context, - ) - }) - .collect(); + // Override for self-referential types + let fields = if matches!( + id.name.as_deref(), + Some( + "MIDISysexSendRequest" | "MIDISysexSendRequestUMP" | "MIDIDriverInterface" + ) + ) { + // Fake fields, we'll have to define it ourselves + vec![Self::Self_] + } else { + ty.get_fields() + .expect("struct fields") + .into_iter() + .map(|field| { + Self::parse( + field.get_type().expect("struct field type"), + Lifetime::Unspecified, + context, + ) + }) + .collect() + }; match declaration.get_kind() { EntityKind::StructDecl => Self::Struct { - id: ItemIdentifier::new(&declaration, context), + id: id.map_name(|name| name.unwrap_or_else(|| "UnknownStruct".into())), fields, is_bridged: is_bridged(&declaration, context), }, - EntityKind::UnionDecl => Self::Union { - id: ItemIdentifier::new_optional(&declaration, context), - fields, - }, + EntityKind::UnionDecl => Self::Union { id, fields }, _ => { error!(?declaration, "unknown record type decl"); Self::GenericParam { diff --git a/crates/header-translator/src/stmt.rs b/crates/header-translator/src/stmt.rs index 3c80797c6..3d72df4bd 100644 --- a/crates/header-translator/src/stmt.rs +++ b/crates/header-translator/src/stmt.rs @@ -1198,7 +1198,7 @@ impl Stmt { EntityKind::StructDecl | EntityKind::UnionDecl => { let is_union = entity.get_kind() == EntityKind::UnionDecl; let Some(id) = ItemIdentifier::new_optional(entity, context).to_option() else { - warn!(?entity, "skipped anonymous union"); + warn!(?entity, "skipped anonymous union/struct"); return vec![]; }; let availability = Availability::parse(entity, context); @@ -2377,18 +2377,18 @@ impl Stmt { write!(f, "{}", self.cfg_gate_ln(config))?; write!(f, "{availability}")?; if *packed { - write!(f, "#[repr(C, packed)]")?; + writeln!(f, "#[repr(C, packed)]")?; } else { - write!(f, "#[repr(C)]")?; + writeln!(f, "#[repr(C)]")?; } if *is_union || fields.iter().any(|(_, _, field)| field.contains_union()) { - write!(f, "#[derive(Clone, Copy)]")?; + writeln!(f, "#[derive(Clone, Copy)]")?; } else { // HACK to make Bool in structs work. if fields.iter().any(|(_, _, field)| field.is_objc_bool()) { - write!(f, "#[derive(Clone, Copy, Debug)]")?; + writeln!(f, "#[derive(Clone, Copy, Debug)]")?; } else { - write!(f, "#[derive(Clone, Copy, Debug, PartialEq)]")?; + writeln!(f, "#[derive(Clone, Copy, Debug, PartialEq)]")?; } } if *is_union { diff --git a/crates/header-translator/src/unexposed_attr.rs b/crates/header-translator/src/unexposed_attr.rs index f2afb524a..6370e57f4 100644 --- a/crates/header-translator/src/unexposed_attr.rs +++ b/crates/header-translator/src/unexposed_attr.rs @@ -249,21 +249,23 @@ impl UnexposedAttr { | "AVKIT_INIT_UNAVAILABLE" | "CA_CANONICAL_DEPRECATED" | "CB_CM_API_AVAILABLE" + | "CF_AUTOMATED_REFCOUNT_UNAVAILABLE" + | "CG_OBSOLETE" | "deprecated" | "DEPRECATED_ATTRIBUTE" | "DISPATCH_UNAVAILABLE" | "INTERAPP_AUDIO_DEPRECATED" - | "MIDICI1_0" - | "MIDICI1_1" - | "MIDICI1_2" + | "MIDI_API_UNAVAILABLE_NON_MACOS" + | "MIDI_AVAILABLE_UMP1_1" | "MIDICI1_0_AVAILABILITY" - | "MIDICI1_1_AVAILABILITY" | "MIDICI1_0_DEPRECATED" + | "MIDICI1_0" + | "MIDICI1_1_AVAILABILITY" | "MIDICI1_1_DEPRECATED" - | "MIDI_AVAILABLE_UMP1_1" + | "MIDICI1_1" + | "MIDICI1_2" + | "MIDINETWORKSESSION_AVAILABLE" | "MP_INIT_UNAVAILABLE" - | "CF_AUTOMATED_REFCOUNT_UNAVAILABLE" - | "CG_OBSOLETE" | "NS_AUTOMATED_REFCOUNT_UNAVAILABLE" | "NS_AUTOMATED_REFCOUNT_WEAK_UNAVAILABLE" | "NS_UNAVAILABLE" diff --git a/crates/objc2/src/topics/about_generated/CHANGELOG.md b/crates/objc2/src/topics/about_generated/CHANGELOG.md index 53ead2cea..60273637d 100644 --- a/crates/objc2/src/topics/about_generated/CHANGELOG.md +++ b/crates/objc2/src/topics/about_generated/CHANGELOG.md @@ -27,6 +27,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - `CoreGraphics` / `objc2-core-graphics`. - `CoreFoundation` / `objc2-core-foundation`. - `CoreMedia` / `objc2-core-media`. + - `CoreMIDI` / `objc2-core-midi`. - `CoreText` / `objc2-core-text`. - `CoreVideo` / `objc2-core-video`. - `EventKitUI` / `objc2-event-kit-ui`. diff --git a/crates/objc2/src/topics/about_generated/list_data.md b/crates/objc2/src/topics/about_generated/list_data.md index e510a0b22..84e4a2e07 100644 --- a/crates/objc2/src/topics/about_generated/list_data.md +++ b/crates/objc2/src/topics/about_generated/list_data.md @@ -28,6 +28,7 @@ | `CoreGraphics` | [![`objc2-core-graphics`](https://badgen.net/crates/v/objc2-core-graphics)](https://crates.io/crates/objc2-core-graphics) | [![docs.rs](https://docs.rs/objc2-core-graphics/badge.svg)](https://docs.rs/objc2-core-graphics/) | | `CoreImage` | [![`objc2-core-image`](https://badgen.net/crates/v/objc2-core-image)](https://crates.io/crates/objc2-core-image) | [![docs.rs](https://docs.rs/objc2-core-image/badge.svg)](https://docs.rs/objc2-core-image/) | | `CoreLocation` | [![`objc2-core-location`](https://badgen.net/crates/v/objc2-core-location)](https://crates.io/crates/objc2-core-location) | [![docs.rs](https://docs.rs/objc2-core-location/badge.svg)](https://docs.rs/objc2-core-location/) | +| `CoreMIDI` | [![`objc2-core-midi`](https://badgen.net/crates/v/objc2-core-midi)](https://crates.io/crates/objc2-core-midi) | [![docs.rs](https://docs.rs/objc2-core-midi/badge.svg)](https://docs.rs/objc2-core-midi/) | | `CoreML` | [![`objc2-core-ml`](https://badgen.net/crates/v/objc2-core-ml)](https://crates.io/crates/objc2-core-ml) | [![docs.rs](https://docs.rs/objc2-core-ml/badge.svg)](https://docs.rs/objc2-core-ml/) | | `CoreMedia` | [![`objc2-core-media`](https://badgen.net/crates/v/objc2-core-media)](https://crates.io/crates/objc2-core-media) | [![docs.rs](https://docs.rs/objc2-core-media/badge.svg)](https://docs.rs/objc2-core-media/) | | `CoreMotion` | [![`objc2-core-motion`](https://badgen.net/crates/v/objc2-core-motion)](https://crates.io/crates/objc2-core-motion) | [![docs.rs](https://docs.rs/objc2-core-motion/badge.svg)](https://docs.rs/objc2-core-motion/) | diff --git a/crates/test-frameworks/Cargo.toml b/crates/test-frameworks/Cargo.toml index 78e36135a..a958524c6 100644 --- a/crates/test-frameworks/Cargo.toml +++ b/crates/test-frameworks/Cargo.toml @@ -68,6 +68,8 @@ test-frameworks = [ "objc2-core-image/all", "dep:objc2-core-location", "objc2-core-location/all", + "dep:objc2-core-midi", + "objc2-core-midi/all", "dep:objc2-core-ml", "objc2-core-ml/all", "dep:objc2-core-media", @@ -212,6 +214,7 @@ objc2-core-data = { path = "../../framework-crates/objc2-core-data", optional = objc2-core-foundation = { path = "../../framework-crates/objc2-core-foundation", optional = true } objc2-core-graphics = { path = "../../framework-crates/objc2-core-graphics", optional = true } objc2-core-location = { path = "../../framework-crates/objc2-core-location", optional = true } +objc2-core-midi = { path = "../../framework-crates/objc2-core-midi", optional = true } objc2-core-ml = { path = "../../framework-crates/objc2-core-ml", optional = true } objc2-core-media = { path = "../../framework-crates/objc2-core-media", optional = true } objc2-core-text = { path = "../../framework-crates/objc2-core-text", optional = true } diff --git a/framework-crates/objc2-audio-toolbox/Cargo.toml b/framework-crates/objc2-audio-toolbox/Cargo.toml index c552dda01..1df25b83a 100644 --- a/framework-crates/objc2-audio-toolbox/Cargo.toml +++ b/framework-crates/objc2-audio-toolbox/Cargo.toml @@ -22,6 +22,7 @@ libc = { version = "0.2.80", default-features = false, optional = true } objc2 = { path = "../../crates/objc2", version = "0.5.2", default-features = false, features = ["std"] } objc2-core-audio-types = { path = "../objc2-core-audio-types", version = "0.2.2", default-features = false, optional = true, features = ["CoreAudioBaseTypes", "objc2"] } objc2-core-foundation = { path = "../objc2-core-foundation", version = "0.2.2", default-features = false, optional = true, features = ["CFArray", "CFBase", "CFURL", "objc2"] } +objc2-core-midi = { path = "../objc2-core-midi", version = "0.2.2", default-features = false, optional = true, features = ["MIDIServices", "objc2"] } objc2-foundation = { path = "../objc2-foundation", version = "0.2.2", default-features = false, features = ["alloc"] } [package.metadata.docs.rs] @@ -40,15 +41,18 @@ targets = [ default = ["std"] std = ["alloc", "bitflags?/std"] alloc = [] -bitflags = ["dep:bitflags", "objc2-core-audio-types?/bitflags", "objc2-core-foundation?/bitflags", "objc2-foundation/bitflags"] -block2 = ["dep:block2", "objc2-core-foundation?/block2", "objc2-foundation/block2"] +bitflags = ["dep:bitflags", "objc2-core-audio-types?/bitflags", "objc2-core-foundation?/bitflags", "objc2-core-midi?/bitflags", "objc2-foundation/bitflags"] +block2 = ["dep:block2", "objc2-core-foundation?/block2", "objc2-core-midi?/block2", "objc2-foundation/block2"] libc = ["dep:libc", "objc2-core-foundation?/libc", "objc2-foundation/libc"] objc2-core-audio-types = ["dep:objc2-core-audio-types"] -objc2-core-foundation = ["dep:objc2-core-foundation", "objc2-foundation/objc2-core-foundation"] +objc2-core-foundation = ["dep:objc2-core-foundation", "objc2-core-midi?/objc2-core-foundation", "objc2-foundation/objc2-core-foundation"] +objc2-core-midi = ["dep:objc2-core-midi"] AUAudioUnit = [ "bitflags", "objc2-core-audio-types?/CoreAudioBaseTypes", + "objc2-core-midi?/MIDICapabilityInquiry", + "objc2-core-midi?/MIDIServices", "objc2-foundation/NSArray", "objc2-foundation/NSDate", "objc2-foundation/NSDictionary", @@ -129,6 +133,7 @@ AudioUnitProperties = [ "objc2-core-audio-types?/CoreAudioBaseTypes", "objc2-core-foundation?/CFBase", "objc2-core-foundation?/CFURL", + "objc2-core-midi?/MIDIServices", ] AudioUnitUtilities = [ "objc2-core-foundation?/CFBase", @@ -142,13 +147,14 @@ ExtendedAudioFile = [ "objc2-core-audio-types?/CoreAudioBaseTypes", "objc2-core-foundation?/CFURL", ] -MusicDevice = [] +MusicDevice = ["objc2-core-midi?/MIDIServices"] MusicPlayer = [ "bitflags", "objc2-core-foundation?/CFBase", "objc2-core-foundation?/CFData", "objc2-core-foundation?/CFDictionary", "objc2-core-foundation?/CFURL", + "objc2-core-midi?/MIDIServices", ] all = [ "AUAudioUnit", @@ -184,4 +190,5 @@ all = [ "libc", "objc2-core-audio-types", "objc2-core-foundation", + "objc2-core-midi", ] diff --git a/framework-crates/objc2-audio-toolbox/translation-config.toml b/framework-crates/objc2-audio-toolbox/translation-config.toml index 4995fdba6..0263b3fe3 100644 --- a/framework-crates/objc2-audio-toolbox/translation-config.toml +++ b/framework-crates/objc2-audio-toolbox/translation-config.toml @@ -75,25 +75,6 @@ fn.GetNameFromSoundBank.skipped = true fn.MusicSequenceLoadSMFWithFlags.skipped = true fn.MusicSequenceSaveMIDIFile.skipped = true -# Needs CoreMIDI -fn.CAClockParseMIDI.skipped = true -typedef.AUMIDIOutputCallback.skipped = true -struct.AUMIDIOutputCallbackStruct.skipped = true -typedef.AUMIDIOutputCallbackStruct.skipped = true -class.AUAudioUnit.methods."profileStateForCable:channel:".skipped = true -class.AUAudioUnit.methods."enableProfile:cable:onChannel:error:".skipped = true -class.AUAudioUnit.methods."disableProfile:cable:onChannel:error:".skipped = true -typedef.AUMIDICIProfileChangedBlock.skipped = true -class.AUAudioUnit.methods.profileChangedBlock.skipped = true -class.AUAudioUnit.methods."setProfileChangedBlock:".skipped = true -class.AUAudioUnit.methods.AudioUnitMIDIProtocol.skipped = true -class.AUAudioUnit.methods.hostMIDIProtocol.skipped = true -class.AUAudioUnit.methods."setHostMIDIProtocol:".skipped = true -fn.MusicSequenceSetMIDIEndpoint.skipped = true -fn.MusicTrackSetDestMIDIEndpoint.skipped = true -fn.MusicTrackGetDestMIDIEndpoint.skipped = true -fn.MusicDeviceMIDIEventList.skipped = true - # Needs dispatch_queue_t from libdispatch fn.AudioQueueNewOutputWithDispatchQueue.skipped = true fn.AudioQueueNewInputWithDispatchQueue.skipped = true diff --git a/framework-crates/objc2-avf-audio/Cargo.toml b/framework-crates/objc2-avf-audio/Cargo.toml index 7448e2d60..ce7faa176 100644 --- a/framework-crates/objc2-avf-audio/Cargo.toml +++ b/framework-crates/objc2-avf-audio/Cargo.toml @@ -21,6 +21,7 @@ block2 = { path = "../../crates/block2", version = "0.5.1", default-features = f objc2 = { path = "../../crates/objc2", version = "0.5.2", default-features = false, features = ["std"] } objc2-core-audio-types = { path = "../objc2-core-audio-types", version = "0.2.2", default-features = false, optional = true, features = ["objc2"] } objc2-core-media = { path = "../objc2-core-media", version = "0.2.2", default-features = false, optional = true, features = ["objc2"] } +objc2-core-midi = { path = "../objc2-core-midi", version = "0.2.2", default-features = false, optional = true, features = ["objc2"] } objc2-foundation = { path = "../objc2-foundation", version = "0.2.2", default-features = false, features = ["alloc"] } [target.'cfg(not(target_os = "watchos"))'.dependencies] @@ -43,11 +44,12 @@ targets = [ default = ["std"] std = ["alloc", "bitflags?/std"] alloc = [] -bitflags = ["dep:bitflags", "objc2-audio-toolbox?/bitflags", "objc2-core-audio-types?/bitflags", "objc2-core-media?/bitflags", "objc2-foundation/bitflags"] -block2 = ["dep:block2", "objc2-audio-toolbox?/block2", "objc2-core-media?/block2", "objc2-foundation/block2"] +bitflags = ["dep:bitflags", "objc2-audio-toolbox?/bitflags", "objc2-core-audio-types?/bitflags", "objc2-core-media?/bitflags", "objc2-core-midi?/bitflags", "objc2-foundation/bitflags"] +block2 = ["dep:block2", "objc2-audio-toolbox?/block2", "objc2-core-media?/block2", "objc2-core-midi?/block2", "objc2-foundation/block2"] objc2-audio-toolbox = ["dep:objc2-audio-toolbox"] objc2-core-audio-types = ["dep:objc2-core-audio-types", "objc2-audio-toolbox?/objc2-core-audio-types", "objc2-core-media?/objc2-core-audio-types"] objc2-core-media = ["dep:objc2-core-media"] +objc2-core-midi = ["dep:objc2-core-midi", "objc2-audio-toolbox?/objc2-core-midi"] AVAudioApplication = [ "objc2-foundation/NSError", @@ -133,6 +135,7 @@ AVAudioRecorder = [ AVAudioRoutingArbiter = ["objc2-foundation/NSError"] AVAudioSequencer = [ "bitflags", + "objc2-core-midi?/MIDIServices", "objc2-foundation/NSArray", "objc2-foundation/NSData", "objc2-foundation/NSDate", @@ -199,6 +202,7 @@ AVAudioUnitEffect = ["objc2-audio-toolbox?/AudioComponent"] AVAudioUnitGenerator = ["objc2-audio-toolbox?/AudioComponent"] AVAudioUnitMIDIInstrument = [ "objc2-audio-toolbox?/AudioComponent", + "objc2-core-midi?/MIDIServices", "objc2-foundation/NSData", ] AVAudioUnitReverb = ["objc2-audio-toolbox?/AudioComponent"] @@ -290,4 +294,5 @@ all = [ "objc2-audio-toolbox", "objc2-core-audio-types", "objc2-core-media", + "objc2-core-midi", ] diff --git a/framework-crates/objc2-avf-audio/translation-config.toml b/framework-crates/objc2-avf-audio/translation-config.toml index aabbcfcdd..7c5e249b3 100644 --- a/framework-crates/objc2-avf-audio/translation-config.toml +++ b/framework-crates/objc2-avf-audio/translation-config.toml @@ -20,11 +20,6 @@ visionos = "1.0" class.AVAudioEngine.methods."connectMIDI:to:format:eventListBlock:".skipped = true class.AVAudioEngine.methods."connectMIDI:toNodes:format:eventListBlock:".skipped = true -# Needs MIDIEndpointRef and MIDIEventList from CoreMIDI -class.AVMusicTrack.methods.destinationMIDIEndpoint.skipped = true -class.AVMusicTrack.methods."setDestinationMIDIEndpoint:".skipped = true -class.AVAudioUnitMIDIInstrument.methods."sendMIDIEventList:".skipped = true - # Both the NSObject superclass and the AVAudioSessionDeprecated category defines this class.AVAudioSession.methods.init.skipped = true class.AVAudioSession.methods.new.skipped = true # Use sharedInstance diff --git a/framework-crates/objc2-core-midi/Cargo.toml b/framework-crates/objc2-core-midi/Cargo.toml new file mode 100644 index 000000000..1aca45fde --- /dev/null +++ b/framework-crates/objc2-core-midi/Cargo.toml @@ -0,0 +1,137 @@ +# This file has been automatically generated by `objc2`'s `header-translator`. +# DO NOT EDIT + +[package] +name = "objc2-core-midi" +version.workspace = true +description = "Bindings to the CoreMIDI framework" +edition.workspace = true +rust-version.workspace = true +keywords = ["cocoa", "apple", "framework", "macos", "ios"] +categories.workspace = true +repository.workspace = true +license.workspace = true + +[lints] +workspace = true + +[dependencies] +bitflags = { version = "2.5.0", default-features = false, optional = true } +block2 = { path = "../../crates/block2", version = "0.5.1", default-features = false, optional = true, features = ["alloc"] } +objc2 = { path = "../../crates/objc2", version = "0.5.2", default-features = false, optional = true, features = ["std"] } +objc2-core-foundation = { path = "../objc2-core-foundation", version = "0.2.2", default-features = false, optional = true } +objc2-foundation = { path = "../objc2-foundation", version = "0.2.2", default-features = false, optional = true, features = ["alloc"] } + +[package.metadata.docs.rs] +default-target = "aarch64-apple-darwin" +features = ["all"] +rustc-args = ["--cfg", "docsrs"] # Fix cross-crate link to objc2::topics +targets = [ + "aarch64-apple-darwin", + "x86_64-apple-darwin", + "aarch64-apple-ios", + "aarch64-apple-tvos", + "aarch64-apple-watchos", + "aarch64-apple-ios-macabi", +] + +[features] +default = ["std"] +std = ["alloc", "bitflags?/std"] +alloc = [] +bitflags = ["dep:bitflags", "objc2-core-foundation?/bitflags", "objc2-foundation?/bitflags"] +block2 = ["dep:block2", "objc2-core-foundation?/block2", "objc2-foundation?/block2"] +objc2 = ["dep:objc2", "objc2-core-foundation?/objc2"] +objc2-core-foundation = ["dep:objc2-core-foundation", "objc2-foundation?/objc2-core-foundation"] +objc2-foundation = ["dep:objc2-foundation"] + +MIDIBluetoothConnection = ["objc2-core-foundation?/CFBase"] +MIDICIDevice = ["objc2-foundation?/NSArray"] +MIDICIDeviceManager = [ + "objc2-foundation?/NSArray", + "objc2-foundation?/NSNotification", + "objc2-foundation?/NSString", +] +MIDICapabilityInquiry = [ + "objc2-foundation?/NSArray", + "objc2-foundation?/NSData", + "objc2-foundation?/NSError", + "objc2-foundation?/NSObject", + "objc2-foundation?/NSString", + "objc2-foundation?/NSValue", +] +MIDIDriver = [ + "objc2-core-foundation?/CFBase", + "objc2-core-foundation?/CFPlugInCOM", + "objc2-core-foundation?/CFRunLoop", + "objc2-core-foundation?/CFUUID", +] +MIDIMessages = ["bitflags"] +MIDINetworkSession = [ + "objc2-foundation?/NSNetServices", + "objc2-foundation?/NSSet", + "objc2-foundation?/NSString", +] +MIDIServices = [ + "objc2-core-foundation?/CFBase", + "objc2-core-foundation?/CFData", + "objc2-core-foundation?/CFDictionary", +] +MIDISetup = [ + "objc2-core-foundation?/CFArray", + "objc2-core-foundation?/CFBase", + "objc2-core-foundation?/CFData", +] +MIDIThruConnection = [ + "objc2-core-foundation?/CFBase", + "objc2-core-foundation?/CFData", +] +MIDIUMPCI = ["bitflags"] +MIDIUMPCIProfile = [ + "objc2-foundation?/NSError", + "objc2-foundation?/NSString", +] +MIDIUMPEndpoint = [ + "bitflags", + "objc2-foundation?/NSArray", + "objc2-foundation?/NSString", +] +MIDIUMPEndpointManager = [ + "objc2-foundation?/NSArray", + "objc2-foundation?/NSNotification", + "objc2-foundation?/NSString", +] +MIDIUMPFunctionBlock = ["objc2-foundation?/NSString"] +MIDIUMPMutableEndpoint = [ + "objc2-foundation?/NSArray", + "objc2-foundation?/NSError", + "objc2-foundation?/NSString", +] +MIDIUMPMutableFunctionBlock = [ + "objc2-foundation?/NSError", + "objc2-foundation?/NSString", +] +all = [ + "MIDIBluetoothConnection", + "MIDICIDevice", + "MIDICIDeviceManager", + "MIDICapabilityInquiry", + "MIDIDriver", + "MIDIMessages", + "MIDINetworkSession", + "MIDIServices", + "MIDISetup", + "MIDIThruConnection", + "MIDIUMPCI", + "MIDIUMPCIProfile", + "MIDIUMPEndpoint", + "MIDIUMPEndpointManager", + "MIDIUMPFunctionBlock", + "MIDIUMPMutableEndpoint", + "MIDIUMPMutableFunctionBlock", + "bitflags", + "block2", + "objc2", + "objc2-core-foundation", + "objc2-foundation", +] diff --git a/framework-crates/objc2-core-midi/README.md b/framework-crates/objc2-core-midi/README.md new file mode 100644 index 000000000..323b9c998 --- /dev/null +++ b/framework-crates/objc2-core-midi/README.md @@ -0,0 +1,14 @@ +# `objc2-core-midi` + +[![Latest version](https://badgen.net/crates/v/objc2-core-midi)](https://crates.io/crates/objc2-core-midi) +[![License](https://badgen.net/badge/license/MIT/blue)](../LICENSE.txt) +[![Documentation](https://docs.rs/objc2-core-midi/badge.svg)](https://docs.rs/objc2-core-midi/) +[![CI](https://github.com/madsmtm/objc2/actions/workflows/ci.yml/badge.svg)](https://github.com/madsmtm/objc2/actions/workflows/ci.yml) + +Rust bindings to Apple's framework CoreMIDI. + +This README is kept intentionally small to consolidate the documentation, see +[the Rust docs](https://docs.rs/objc2-core-midi/) for more details on this crate. + +This crate is part of the [`objc2` project](https://github.com/madsmtm/objc2), +see that for related crates. diff --git a/framework-crates/objc2-core-midi/src/generated b/framework-crates/objc2-core-midi/src/generated new file mode 120000 index 000000000..f7d082275 --- /dev/null +++ b/framework-crates/objc2-core-midi/src/generated @@ -0,0 +1 @@ +../../../generated/CoreMIDI \ No newline at end of file diff --git a/framework-crates/objc2-core-midi/src/lib.rs b/framework-crates/objc2-core-midi/src/lib.rs new file mode 100644 index 000000000..ce86171ec --- /dev/null +++ b/framework-crates/objc2-core-midi/src/lib.rs @@ -0,0 +1,34 @@ +//! # Bindings to the `CoreMIDI` framework +//! +//! See [Apple's docs][apple-doc] and [the general docs on framework crates][framework-crates] for more information. +//! +//! [apple-doc]: https://developer.apple.com/documentation/coremidi/ +//! [framework-crates]: https://docs.rs/objc2/latest/objc2/topics/about_generated/index.html +#![no_std] +#![cfg_attr(docsrs, feature(doc_auto_cfg))] +// Update in Cargo.toml as well. +#![doc(html_root_url = "https://docs.rs/objc2-core-midi/0.2.2")] + +#[cfg(feature = "alloc")] +extern crate alloc; + +#[cfg(feature = "std")] +extern crate std; + +mod generated; +#[cfg(feature = "MIDIServices")] +mod services; +#[allow(unused_imports, unreachable_pub)] +pub use self::generated::*; + +// MacTypes.h +#[allow(dead_code)] +pub(crate) type Boolean = u8; +#[allow(dead_code)] +pub(crate) type OSStatus = i32; +#[allow(dead_code)] +pub(crate) type Byte = u8; +#[allow(dead_code)] +pub(crate) type ByteCount = core::ffi::c_ulong; +#[allow(dead_code)] +pub(crate) type ItemCount = core::ffi::c_ulong; diff --git a/framework-crates/objc2-core-midi/src/services.rs b/framework-crates/objc2-core-midi/src/services.rs new file mode 100644 index 000000000..76bdd63f9 --- /dev/null +++ b/framework-crates/objc2-core-midi/src/services.rs @@ -0,0 +1,11 @@ +use crate::MIDIProtocolID; + +#[allow(non_upper_case_globals)] +impl MIDIProtocolID { + /// MIDI 1.0. + #[doc(alias = "kMIDIProtocol_1_0")] + pub const Protocol_1_0: Self = Self(1); + /// MIDI 2.0. + #[doc(alias = "kMIDIProtocol_2_0")] + pub const Protocol_2_0: Self = Self(2); +} diff --git a/framework-crates/objc2-core-midi/translation-config.toml b/framework-crates/objc2-core-midi/translation-config.toml new file mode 100644 index 000000000..ef9e7ac57 --- /dev/null +++ b/framework-crates/objc2-core-midi/translation-config.toml @@ -0,0 +1,16 @@ +framework = "CoreMIDI" +crate = "objc2-core-midi" +# Neither objc2-foundation nor objc2-core-foundation, +# CoreMIDI is split in two parts that each use one. +required-crates = [] +custom-lib-rs = true +macos = "10.0" +maccatalyst = "13.0" +ios = "4.2" +tvos = "15.0" +watchos = "8.0" +visionos = "1.0" + +# Wrongly renamed (Swift's renaming algorithm is insufficient) +enum.MIDIProtocolID.constants.kMIDIProtocol_1_0.skipped = true +enum.MIDIProtocolID.constants.kMIDIProtocol_2_0.skipped = true diff --git a/generated b/generated index 83a760be6..26550aa43 160000 --- a/generated +++ b/generated @@ -1 +1 @@ -Subproject commit 83a760be6596dcbe322e1fd4ddf4d73b7f6366e0 +Subproject commit 26550aa43364f4fb5d149c48f663a6719b30451a