summaryrefslogtreecommitdiffstats
path: root/meta/classes/nativesdk.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/nativesdk.bbclass')
-rw-r--r--meta/classes/nativesdk.bbclass95
1 files changed, 95 insertions, 0 deletions
diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass
new file mode 100644
index 0000000000..5e78116ab8
--- /dev/null
+++ b/meta/classes/nativesdk.bbclass
@@ -0,0 +1,95 @@
1# SDK packages are built either explicitly by the user,
2# or indirectly via dependency. No need to be in 'world'.
3EXCLUDE_FROM_WORLD = "1"
4
5STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}"
6
7# libc for the SDK can be different to that of the target
8NATIVESDKLIBC ?= "libc-glibc"
9LIBCOVERRIDE = ":${NATIVESDKLIBC}"
10CLASSOVERRIDE = "class-nativesdk"
11MACHINEOVERRIDES = ""
12
13#
14# Update PACKAGE_ARCH and PACKAGE_ARCHS
15#
16PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}"
17PACKAGE_ARCHS = "${SDK_PACKAGE_ARCHS}"
18
19#
20# We need chrpath >= 0.14 to ensure we can deal with 32 and 64 bit
21# binaries
22#
23DEPENDS_append = " chrpath-replacement-native"
24EXTRANATIVEPATH += "chrpath-native"
25
26STAGING_DIR_HOST = "${STAGING_DIR}/${MULTIMACH_HOST_SYS}"
27STAGING_DIR_TARGET = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}"
28
29HOST_ARCH = "${SDK_ARCH}"
30HOST_VENDOR = "${SDK_VENDOR}"
31HOST_OS = "${SDK_OS}"
32HOST_PREFIX = "${SDK_PREFIX}"
33HOST_CC_ARCH = "${SDK_CC_ARCH}"
34HOST_LD_ARCH = "${SDK_LD_ARCH}"
35HOST_AS_ARCH = "${SDK_AS_ARCH}"
36#HOST_SYS = "${HOST_ARCH}${TARGET_VENDOR}-${HOST_OS}"
37
38TARGET_ARCH = "${SDK_ARCH}"
39TARGET_VENDOR = "${SDK_VENDOR}"
40TARGET_OS = "${SDK_OS}"
41TARGET_PREFIX = "${SDK_PREFIX}"
42TARGET_CC_ARCH = "${SDK_CC_ARCH}"
43TARGET_LD_ARCH = "${SDK_LD_ARCH}"
44TARGET_AS_ARCH = "${SDK_AS_ARCH}"
45TARGET_FPU = ""
46EXTRA_OECONF_GCC_FLOAT = ""
47
48CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
49CFLAGS = "${BUILDSDK_CFLAGS}"
50CXXFLAGS = "${BUILDSDK_CFLAGS}"
51LDFLAGS = "${BUILDSDK_LDFLAGS}"
52
53# Change to place files in SDKPATH
54base_prefix = "${SDKPATHNATIVE}"
55prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
56exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}"
57baselib = "lib"
58
59export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${libdir}/pkgconfig"
60export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
61
62python nativesdk_virtclass_handler () {
63 pn = e.data.getVar("PN", True)
64 if not (pn.endswith("-nativesdk") or pn.startswith("nativesdk-")):
65 return
66
67 e.data.setVar("MLPREFIX", "nativesdk-")
68 e.data.setVar("PN", "nativesdk-" + e.data.getVar("PN", True).replace("-nativesdk", "").replace("nativesdk-", ""))
69 e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + ":virtclass-nativesdk")
70}
71
72python () {
73 pn = d.getVar("PN", True)
74 if not pn.startswith("nativesdk-"):
75 return
76
77 import oe.classextend
78
79 clsextend = oe.classextend.NativesdkClassExtender("nativesdk", d)
80 clsextend.rename_packages()
81 clsextend.rename_package_variables((d.getVar("PACKAGEVARS", True) or "").split())
82
83 clsextend.map_depends_variable("DEPENDS")
84 clsextend.map_packagevars()
85 clsextend.map_variable("PROVIDES")
86 clsextend.map_regexp_variable("PACKAGES_DYNAMIC")
87}
88
89addhandler nativesdk_virtclass_handler
90nativesdk_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise"
91
92do_populate_sysroot[stamp-extra-info] = ""
93do_packagedata[stamp-extra-info] = ""
94
95USE_NLS = "${SDKUSE_NLS}"