On Thu, Feb 23, 2017, at 06:40 AM, Emilio Cobos Álvarez wrote: > On Thu, Feb 23, 2017 at 08:25:30AM +0200, Henri Sivonen wrote: > > On Wed, Feb 22, 2017 at 5:49 PM, Ted Mielczarek <t...@mielczarek.org> wrote: > > > Given that > > > the C API here is under your complete control, it seems like it's > > > possible to generate a cross-platform header > > > > I believe the header is cross-platform, yes. > > > > > Alternately you could just generate it at build time, and we could pass > > > the path to $(DIST)/include in a special environment variable so you > > > could put the header in the right place. > > > > So just https://doc.rust-lang.org/std/env/fn.var.html in build.rs? Any > > naming conventions for the special variable? (I'm inferring from the > > way you said it that DIST itself isn't being passed to the build.rs > > process. Right?) > > FWIW, in Stylo we use MOZ_DIST[1], which is passed to the build script, > not sure if it's stylo only though. > > [1]: > https://searchfox.org/mozilla-central/rev/b1044cf7c2000c3e75e8181e893236a940c8b6d2/servo/components/style/build_gecko.rs#48
So if you're only concerned about it working in Gecko--there you go! I'm not aware that there's any better convention for this in Rust in the general sense. Working with C code in projects built by Cargo seems to be still fairly new territory. There are plenty of crates that build C libraries and expose their API, and there are plenty of crates that expose a C API from Rust code (many of which I'm sure use rusty-cheddar to generate a header file), but I'm not sure there are strong conventions for "this crate builds C code that relies on C code from another crate". -Ted _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform