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

Reply via email to