-
Notifications
You must be signed in to change notification settings - Fork 73
/
Copy pathcargo-bin-cross.inc
53 lines (42 loc) · 1.66 KB
/
cargo-bin-cross.inc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
DESCRIPTION = "Cargo build tool for Rust (pre-compiled binary version)"
HOMEPAGE = "https://rust-lang.org"
LICENSE = "Apache-2.0 | MIT"
SECTION = "devel"
inherit cross
inherit rust_bin-common
PN = "cargo-bin-cross-${TARGET_ARCH}"
PROVIDES += "cargo-bin-native"
CARGO_HOST_TARGET = "${@rust_target(d, 'HOST')}"
SYSROOT_DIRS_NATIVE += "${prefix}"
SYSROOT_DIRS_IGNORE += "\
${prefix}/share \
${prefix}/etc \
"
# Stripping fails because of mixed arch types (host and target)
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
fakeroot do_install() {
${S}/install.sh --destdir="${D}" --prefix="${prefix}"
rm -f ${D}${prefix}/lib/rustlib/uninstall.sh
rm -f ${D}${prefix}/lib/rustlib/install.log
rm -f ${D}${prefix}/lib/rustlib/components
rm -f ${D}${prefix}/lib/rustlib/rust-installer-version
}
do_install[depends] += "virtual/fakeroot-native:do_populate_sysroot"
python () {
pv = d.getVar("PV", True)
# only specified nightly needs another branch
nightly = pv.startswith("nightly-")
if nightly:
pv = "nightly"
target = d.getVar("CARGO_HOST_TARGET", True)
cargo_uri = ("%s;md5sum=%s;sha256sum=%s;downloadname=%s" %
(cargo_url(target), cargo_md5(target), cargo_sha256(target),
d.getVar("PN", True) + "-" + pv + "-" + target + ".tar.gz"))
src_uri = d.getVar("SRC_URI", True).split()
cargo_extract_path = cargo_url(target).split('/')[-1].replace('.tar.gz', '')
d.setVar("SRC_URI", ' '.join(src_uri + [cargo_uri]))
d.setVar("S", "${{WORKDIR}}/{}".format(cargo_extract_path))
d.appendVarFlag("S", "vardeps", " cargo_url")
d.appendVarFlag("S", "vardepsexclude", " WORKDIR")
}