Skip to content

Support for metal-cpp #2235

@markovejnovic

Description

@markovejnovic

Feature Request

I'm trying to use the metal-cpp library provided by Apple to integrate my C++ codebase with the metal API.

It doesn't look like there are any wrapfiles for that library.

Possible Issues

One of the issues I foresee is that Apple has a weird way of versioning their library. Namely, it appears they release this library on an OS-compatibility basis (attached screenshot from the page):

Image

Strange. I was wondering what the best way to package this up would be. I see two options:

  1. We support the latest and greatest wrap version -- metal-cpp_macOS26_iOS26-beta.zip. I believe this to be unwise -- the latest and greatest right now is an unstable beta that few users actually have installed on their machines.
  2. We provide an array of wraps, each for one zip provided by Apple. This seems like a reasonable-enough solution, but seems like a maintenance nightmare.

This is my first time dipping my toes into writing wraps (normally I would've been lazy and submoduled). Let me know if you have better suggestions than the ones I offered.

For reference, Here's a convenient (to awk, not so much humans) table of all the redistributions:

metal-cpp_macOS12_iOS15.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS12_iOS15.zip
metal-cpp_macOS13_iOS16.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS13_iOS16.zip
metal-cpp_macOS13.3_iOS16.4.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS13.3_iOS16.4.zip
metal-cpp_macOS14_iOS17-beta.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS14_iOS17-beta.zip
metal-cpp_macOS14.2_iOS17.2.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS14.2_iOS17.2.zip
metal-cpp_macOS15_iOS18-beta.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS15_iOS18-beta.zip
metal-cpp_macOS15_iOS18.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS15_iOS18.zip
metal-cpp_macOS15.2_iOS18.2.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS15.2_iOS18.2.zip
metal-cpp_macOS26_iOS26-beta.zip https://developer.apple.com/metal/cpp/files/metal-cpp_macOS26_iOS26-beta.zip

I'll be opening a PR briefly with a partial implementation for the latter!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions