On 04/16/2012 06:01 AM, Alexander Stavonin wrote:
Is it possible to include into the one crate as Rust as C code?

Yes it is possible. There's no explicit support for it but native modules may refer to static libraries and it's relatively easy to link arbitrary static libraries into a crate. rust-azure[1] does this so it doesn't have to worry about keeping track of a native dynamic library.

It's not quite ergonomic right now but rust-azure does it by including the following hack (in test.rs of all places):

    #[link_args = "-L. -lcairo -lazure"]
    #[nolink]
    native mod m { }

The native mod is just a place to tack on the extra link args, `-L` adds to the library search path, `-lcairo` is a system-installed dependency of azure, and `-lazure` is the static library that is linked into the crate. There are a few[2] upcoming changes[3] that will make
this eaisier in the future.

-Brian

[1]:https://github.com/brson/rust-azure
[2]:https://github.com/mozilla/rust/issues/2217
[3]:https://github.com/mozilla/rust/issues/2218
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to