diff options
Diffstat (limited to 'meta/classes/cross.bbclass')
-rw-r--r-- | meta/classes/cross.bbclass | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/meta/classes/cross.bbclass b/meta/classes/cross.bbclass new file mode 100644 index 0000000000..bd1448965c --- /dev/null +++ b/meta/classes/cross.bbclass | |||
@@ -0,0 +1,80 @@ | |||
1 | inherit relocatable | ||
2 | |||
3 | # Cross packages are built indirectly via dependency, | ||
4 | # no need for them to be a direct target of 'world' | ||
5 | EXCLUDE_FROM_WORLD = "1" | ||
6 | |||
7 | CLASSOVERRIDE = "class-cross" | ||
8 | PACKAGES = "" | ||
9 | PACKAGES_DYNAMIC = "" | ||
10 | PACKAGES_DYNAMIC_class-native = "" | ||
11 | |||
12 | HOST_ARCH = "${BUILD_ARCH}" | ||
13 | HOST_VENDOR = "${BUILD_VENDOR}" | ||
14 | HOST_OS = "${BUILD_OS}" | ||
15 | HOST_PREFIX = "${BUILD_PREFIX}" | ||
16 | HOST_CC_ARCH = "${BUILD_CC_ARCH}" | ||
17 | HOST_LD_ARCH = "${BUILD_LD_ARCH}" | ||
18 | HOST_AS_ARCH = "${BUILD_AS_ARCH}" | ||
19 | |||
20 | STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}" | ||
21 | |||
22 | export PKG_CONFIG_DIR = "${STAGING_DIR}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig" | ||
23 | export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}" | ||
24 | |||
25 | CPPFLAGS = "${BUILD_CPPFLAGS}" | ||
26 | CFLAGS = "${BUILD_CFLAGS}" | ||
27 | CXXFLAGS = "${BUILD_CFLAGS}" | ||
28 | LDFLAGS = "${BUILD_LDFLAGS}" | ||
29 | LDFLAGS_build-darwin = "-L${STAGING_LIBDIR_NATIVE}" | ||
30 | |||
31 | TOOLCHAIN_OPTIONS = "" | ||
32 | |||
33 | DEPENDS_GETTEXT = "gettext-native" | ||
34 | |||
35 | # Path mangling needed by the cross packaging | ||
36 | # Note that we use := here to ensure that libdir and includedir are | ||
37 | # target paths. | ||
38 | target_base_prefix := "${base_prefix}" | ||
39 | target_prefix := "${prefix}" | ||
40 | target_exec_prefix := "${exec_prefix}" | ||
41 | target_base_libdir = "${target_base_prefix}/${baselib}" | ||
42 | target_libdir = "${target_exec_prefix}/${baselib}" | ||
43 | target_includedir := "${includedir}" | ||
44 | |||
45 | # Overrides for paths | ||
46 | CROSS_TARGET_SYS_DIR = "${MULTIMACH_TARGET_SYS}" | ||
47 | prefix = "${STAGING_DIR_NATIVE}${prefix_native}" | ||
48 | base_prefix = "${STAGING_DIR_NATIVE}" | ||
49 | exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}" | ||
50 | bindir = "${exec_prefix}/bin/${CROSS_TARGET_SYS_DIR}" | ||
51 | sbindir = "${bindir}" | ||
52 | base_bindir = "${bindir}" | ||
53 | base_sbindir = "${bindir}" | ||
54 | libdir = "${exec_prefix}/lib/${CROSS_TARGET_SYS_DIR}" | ||
55 | libexecdir = "${exec_prefix}/libexec/${CROSS_TARGET_SYS_DIR}" | ||
56 | |||
57 | do_populate_sysroot[sstate-inputdirs] = "${SYSROOT_DESTDIR}/${STAGING_DIR_NATIVE}/" | ||
58 | do_populate_sysroot[stamp-extra-info] = "" | ||
59 | do_packagedata[stamp-extra-info] = "" | ||
60 | |||
61 | python cross_virtclass_handler () { | ||
62 | classextend = e.data.getVar('BBCLASSEXTEND', True) or "" | ||
63 | if "cross" not in classextend: | ||
64 | return | ||
65 | |||
66 | pn = e.data.getVar("PN", True) | ||
67 | if not pn.endswith("-cross"): | ||
68 | return | ||
69 | |||
70 | bb.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-cross", e.data) | ||
71 | } | ||
72 | |||
73 | addhandler cross_virtclass_handler | ||
74 | cross_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" | ||
75 | |||
76 | do_install () { | ||
77 | oe_runmake 'DESTDIR=${D}' install | ||
78 | } | ||
79 | |||
80 | USE_NLS = "no" | ||