xref: /OK3568_Linux_fs/yocto/poky/meta/classes/rust.bbclass (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyuninherit rust-common
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRUSTC = "rustc"
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunRUSTC_ARCHFLAGS += "--target=${HOST_SYS} ${RUSTFLAGS}"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyundef rust_base_dep(d):
8*4882a593Smuzhiyun    # Taken from meta/classes/base.bbclass `base_dep_prepend` and modified to
9*4882a593Smuzhiyun    # use rust instead of gcc
10*4882a593Smuzhiyun    deps = ""
11*4882a593Smuzhiyun    if not d.getVar('INHIBIT_DEFAULT_RUST_DEPS'):
12*4882a593Smuzhiyun        if (d.getVar('HOST_SYS') != d.getVar('BUILD_SYS')):
13*4882a593Smuzhiyun            deps += " virtual/${TARGET_PREFIX}rust ${RUSTLIB_DEP}"
14*4882a593Smuzhiyun        else:
15*4882a593Smuzhiyun            deps += " rust-native"
16*4882a593Smuzhiyun    return deps
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunDEPENDS:append = " ${@rust_base_dep(d)}"
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# BUILD_LDFLAGS
21*4882a593Smuzhiyun# 	${STAGING_LIBDIR_NATIVE}
22*4882a593Smuzhiyun# 	${STAGING_BASE_LIBDIR_NATIVE}
23*4882a593Smuzhiyun# BUILDSDK_LDFLAGS
24*4882a593Smuzhiyun# 	${STAGING_LIBDIR}
25*4882a593Smuzhiyun# 	#{STAGING_DIR_HOST}
26*4882a593Smuzhiyun# TARGET_LDFLAGS ?????
27*4882a593Smuzhiyun#RUSTC_BUILD_LDFLAGS = "\
28*4882a593Smuzhiyun#	--sysroot ${STAGING_DIR_NATIVE} \
29*4882a593Smuzhiyun#	-L${STAGING_LIBDIR_NATIVE}	\
30*4882a593Smuzhiyun#	-L${STAGING_BASE_LIBDIR_NATIVE}	\
31*4882a593Smuzhiyun#"
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun# XXX: for some reason bitbake sets BUILD_* & TARGET_* but uses the bare
34*4882a593Smuzhiyun# variables for HOST. Alias things to make it easier for us.
35*4882a593SmuzhiyunHOST_LDFLAGS  ?= "${LDFLAGS}"
36*4882a593SmuzhiyunHOST_CFLAGS   ?= "${CFLAGS}"
37*4882a593SmuzhiyunHOST_CXXFLAGS ?= "${CXXFLAGS}"
38*4882a593SmuzhiyunHOST_CPPFLAGS ?= "${CPPFLAGS}"
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunrustlib_suffix="${TUNE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/rustlib/${HOST_SYS}/lib"
41*4882a593Smuzhiyun# Native sysroot standard library path
42*4882a593Smuzhiyunrustlib_src="${prefix}/lib/${rustlib_suffix}"
43*4882a593Smuzhiyun# Host sysroot standard library path
44*4882a593Smuzhiyunrustlib="${libdir}/${rustlib_suffix}"
45*4882a593Smuzhiyunrustlib:class-native="${libdir}/rustlib/${BUILD_SYS}/lib"
46