[rust-dev] Cargo multiple targets

Isak Andersson contact at bitpuffin.com
Wed Jul 2 05:38:16 PDT 2014


Hi!

Wow I didn't know about the manifest page, I was under the impression that
the docs were very lacking. But this is pretty great.

Thanks a bunch that was super helpful!


On Wed, Jul 2, 2014 at 2:09 PM, Vladimir Matveev <dpx.infinity at gmail.com>
wrote:

> Hi, Isak!
>
> According to manifest documentation [1] you can specify crate type
> (dynamic or static lib or rlib) using crate_type option:
>
> [[lib]]
>> crate_type = ["dylib", "staticlib"]
>
> The above configuration should build you both .a and .so files.
>
>     [1]: http://crates.io/manifest.html, search for "crate_type" w/o
> quotes
>
> On 02 июля 2014 г., at 15:58, Isak Andersson <contact at bitpuffin.com>
> wrote:
>
> > Hi!
> >
> > Thanks for the reply!
> >
> > Apparently multiple targets does in fact work. Just that you can't rely
> on the
> > default path anymore, so I had to add the path = ... to both the [[lib]]
> and [[bin]].
> > Not sure if this is a bug or not.
> >
> > However the library compiles as an rlib and I'm not sure how to change
> it to build
> > a C library instead (a .a or .so on *nix or .lib I think on windows).
> >
> > Actually I'm not even sure how to make rustc build a C library so I
> guess that's what
> > I will start looking at.
> >
> >
> > On Wed, Jul 2, 2014 at 1:37 PM, Sebastian Gesemann <s.gesemann at gmail.com>
> wrote:
> > On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
> > > Hello Rust folks!
> > >
> > > I am using Cargo and I am trying to specify mulitple targets in my
> > > Cargo.toml file.
> > > First of all is this even possible?
> > > ...
> > > [package]
> > > name = "hmproof"
> > > version = "0.1.0"
> > > authors = [ "isak at houstonmedia.se" ]
> > > [[bin]]
> > > name = "hmwhoami"
> > > [[lib]]
> > > name = "proof"
> > > (I also tried adding a path)
> > > path = "src/proof.rs"
> > > [dependencies.rust-http]
> > > git = "https://github.com/chris-morgan/rust-http.git"
> > >
> > > I also tried putting the [[lib]] part after the dependencies part. The
> error
> > > I get is this:
> > > error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such
> file
> > > or directory [...]
> > > Whiich doesn't make any sense at all to me. Why does it suddenly start
> > > looking in src/bin?
> >
> > According to http://crates.io/manifest.html the default path for a
> > binary is src (if there is no other lib) and src/bin (if there is also
> > a lib target). You should be able to override this with path =
> > src/hmwhoami.
> >
> > > Do I have to put my bin code in src/bin and my lib code in src lib or
> what?
> >
> > Currently, only a single lib per package is supported and it seems,
> > judging by the document about the manifest format, that Cargo always
> > looks for src/lib.rs for a library unless you override this using a
> > "path=something".
> >
> > As for how to tell Cargo to invoke rustc with the appropriate -L
> > option: I don't know.
> >
> > HTH,
> > sg
> > _______________________________________________
> > Rust-dev mailing list
> > Rust-dev at mozilla.org
> > https://mail.mozilla.org/listinfo/rust-dev
> >
> > _______________________________________________
> > Rust-dev mailing list
> > Rust-dev at mozilla.org
> > https://mail.mozilla.org/listinfo/rust-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140702/ac1288aa/attachment.html>


More information about the Rust-dev mailing list