mesonbuild / mesonbuild/wrapdb
Support for metal-cpp
- Dominant language
- Meson
- Stars
- 118
- Forks
- 298
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 24
Description
## Feature Request
I'm trying to use the [metal-cpp](https://developer.apple.com/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):

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`](https://developer.apple.com/metal/cpp/files/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!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the metal-cpp redistribution table and the linked Apple archive URLs, then review the partial implementation mentioned in the issue. Done means providing wrapfiles for metal-cpp using a settled strategy for Apple’s OS-compatibility-based versions, rather than leaving the packaging choice unresolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, ios, macos
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100