diff options
author | Tudor Florea <tudor.florea@enea.com> | 2014-10-10 03:19:58 +0200 |
---|---|---|
committer | Tudor Florea <tudor.florea@enea.com> | 2014-10-10 03:19:58 +0200 |
commit | f98b448ee835646be48f530b3e6fe13b32b093f5 (patch) | |
tree | 9d1062f1e8893e72829df650f5e558c5fb255955 /classes/fsl-dynamic-packagearch.bbclass | |
download | meta-fsl-arm-daisy-140929.tar.gz |
initial commit for Enea Linux 4.0-140929daisy-140929
Migrated from the internal git server on the daisy-enea-point-release branch
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'classes/fsl-dynamic-packagearch.bbclass')
-rw-r--r-- | classes/fsl-dynamic-packagearch.bbclass | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/classes/fsl-dynamic-packagearch.bbclass b/classes/fsl-dynamic-packagearch.bbclass new file mode 100644 index 0000000..40eae6c --- /dev/null +++ b/classes/fsl-dynamic-packagearch.bbclass | |||
@@ -0,0 +1,47 @@ | |||
1 | # Automatically set PACKAGE_ARCH for MACHINE_SOCARCH | ||
2 | # | ||
3 | # This allow to easy reuse of binary packages among similar SoCs. The | ||
4 | # usual use for this is to share SoC specific packages among different | ||
5 | # boards. | ||
6 | # | ||
7 | # MACHINE_SOCARCH_FILTER list all packages associated with | ||
8 | # MACHINE_SOCARCH and, when match, will set PACKAGE_ARCH as MACHINE_SOCARCH | ||
9 | # | ||
10 | # MACHINE_ARCH_FILTER list all packages associated with | ||
11 | # MACHINE_ARCH and, when match, will set PACKAGE_ARCH as MACHINE_ARCH | ||
12 | # | ||
13 | # For example, in meta-fsl-arm, this is used to share GPU packages for | ||
14 | # i.MX53 boards (as all them share the AMD GPU) and i.MX6 based boards | ||
15 | # (as all them share Vivante GPU). | ||
16 | # | ||
17 | # To use the class, specify, for example: | ||
18 | # | ||
19 | # MACHINE_SOCARCH_soc = "${TUNE_PKGARCH}-soc" | ||
20 | # | ||
21 | # and the need filters, as: | ||
22 | # | ||
23 | # MACHINE_ARCH_FILTER = "virtual/kernel" | ||
24 | # MACHINE_SOCARCH_FILTER_soc = "virtual/libgles1 ... virtual/libgl" | ||
25 | # | ||
26 | # Copyright 2013 (C) O.S. Systems Software LTDA. | ||
27 | |||
28 | python __anonymous () { | ||
29 | machine_arch_filter = set((d.getVar("MACHINE_ARCH_FILTER", True) or "").split()) | ||
30 | machine_socarch_filter = set((d.getVar("MACHINE_SOCARCH_FILTER", True) or "").split()) | ||
31 | if machine_socarch_filter or machine_arch_filter: | ||
32 | provides = set((d.getVar("PROVIDES", True) or "").split()) | ||
33 | depends = set((d.getVar("DEPENDS", True) or "").split()) | ||
34 | PN = d.getVar("PN", True) | ||
35 | |||
36 | package_arch = None | ||
37 | if list(machine_arch_filter & (provides | depends)): | ||
38 | package_arch = d.getVar("MACHINE_ARCH", True) | ||
39 | elif list(machine_socarch_filter & (provides | depends)): | ||
40 | package_arch = d.getVar("MACHINE_SOCARCH", True) | ||
41 | if not package_arch: | ||
42 | bb.parse.SkipPackage("You must set MACHINE_SOCARCH as MACHINE_SOCARCH_FILTER is set for this SoC.") | ||
43 | |||
44 | if package_arch: | ||
45 | bb.debug(1, "Use '%s' as package archictecture for '%s'" % (package_arch, PN)) | ||
46 | d.setVar("PACKAGE_ARCH", package_arch) | ||
47 | } | ||