servo / cocoa-rs

DEPRECATED - Cocoa/Objective-C bindings for the Rust programming language
https://github.com/servo/core-foundation-rs/
Other
286 stars 72 forks source link

Automatic binding generation? #147

Open frewsxcv opened 7 years ago

frewsxcv commented 7 years ago

PyObjc (and possibly RubyCocoa?) use .fwinfo files to generate language bindings around Cocoa and similar objective C libraries:

https://bitbucket.org/ronaldoussoren/pyobjc/raw/6b74fc7e1ba0995038dc5c1f162d1fad860ff175/pyobjc-framework-Cocoa/metadata/raw.AppKit/x86_64-10.10.fwinfo

From what I can tell, PyObjC uses a tool called objective.metadata to generate these files:

https://bitbucket.org/ronaldoussoren/objective.metadata/src/bd0f1b994403?at=default

Has anyone thought about doing automatic binding generation for cocoa-rs? Anyone know of easy strategies?

chances commented 7 years ago

Is rust-bindgen a good option?

frewsxcv commented 7 years ago

It's possible, but I'm familiar with bindgen enough to know for sure.

emilio commented 7 years ago

You could try with https://github.com/servo/rust-bindgen. I recently made a PR to freetype to do the same (avoiding manual bindings), so probably you could get inspired by the script in there:

https://github.com/servo/rust-freetype/pull/48

I can't do this myself since I don't have an OSX machine.

nox commented 7 years ago

Are fwinfo files an Apple thing?