cc3c8bbfaf
This comit implements a new flag, --extern, which is used to specify where a crate is located. The purpose of this flag is to bypass the normal crate loading/matching of the compiler to point it directly at the right file. This flag takes the form `--extern foo=bar` where `foo` is the name of a crate and `bar` is the location at which to find the crate. Multiple `--extern` directives are allowed with the same crate name to specify the rlib/dylib pair for a crate. It is invalid to specify more than one rlib or more than one dylib, and it's required that the crates are valid rust crates. I have also added some extensive documentation to metadata::loader about how crate loading should work. RFC: 0035-remove-crate-id
11 lines
272 B
Makefile
11 lines
272 B
Makefile
-include ../tools.mk
|
|
|
|
all:
|
|
$(RUSTC) foo.rs -C metadata=a -C extra-filename=-a
|
|
$(RUSTC) foo.rs -C metadata=b -C extra-filename=-b
|
|
$(RUSTC) bar.rs \
|
|
--extern foo1=$(TMPDIR)/libfoo-a.rlib \
|
|
--extern foo2=$(TMPDIR)/libfoo-b.rlib \
|
|
-Z print-link-args
|
|
$(call RUN,bar)
|