diff options
author | Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> | 2019-03-15 15:16:19 -0700 |
---|---|---|
committer | Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com> | 2019-11-19 16:01:14 -0800 |
commit | 366e381bc831aa875ac7d8528696ed3b7de5ccdb (patch) | |
tree | a8e521192d2d2882fd35cab7d0f1cbba93b8fab9 | |
parent | 7078bdc5547ab5a78c23dea7f833f9e7f1146e59 (diff) | |
download | meta-xilinx-366e381bc831aa875ac7d8528696ed3b7de5ccdb.tar.gz |
libmali-xlnx: only use and install dependencies that the DISTRO supports
Be less strict with dependencies, if a user doesnt want a certain
backend dont use or install dependencies for that backend.
While switching alternatives at runtime would technically work,
specifically speaking, the link to the selected alternative would be
created correctly, the backend itself wouldnt necessarly work for
obvious reasons, unless the user has the correct DISTRO_FEATURES enabled
in their DISTRO configuration, which would pull all the necessary
runtime dependencies for that backend.
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
-rw-r--r-- | meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb b/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb index 73675132..8c88f4a1 100644 --- a/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb +++ b/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb | |||
@@ -38,15 +38,31 @@ PACKAGE_ARCH = "${SOC_FAMILY}" | |||
38 | 38 | ||
39 | S = "${WORKDIR}/git" | 39 | S = "${WORKDIR}/git" |
40 | 40 | ||
41 | # If were switching at runtime, we need all RDEPENDS needed for all backends available | 41 | # If were switching at runtime, we would need all RDEPENDS needed for all backends available |
42 | RDEPENDS_${PN} = " kernel-module-mali libxdamage libxext libx11 libdrm libxfixes" | 42 | X11RDEPENDS = "libxdamage libxext libx11 libdrm libxfixes" |
43 | X11DEPENDS = "libxdamage libxext virtual/libx11 libdrm libxfixes" | ||
44 | |||
45 | # Don't install runtime dependencies for other backends unless the DISTRO supports it | ||
46 | RDEPENDS_${PN} = " \ | ||
47 | kernel-module-mali \ | ||
48 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11RDEPENDS}', '', d)} \ | ||
49 | " | ||
43 | 50 | ||
44 | # We dont build anything but we want to avoid QA warning build-deps | 51 | # We dont build anything but we want to avoid QA warning build-deps |
45 | DEPENDS = "wayland" | 52 | DEPENDS = "\ |
53 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \ | ||
54 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland libdrm', '', d)} \ | ||
55 | " | ||
56 | |||
46 | 57 | ||
47 | # x11 is default, set to "fbdev" , "wayland", or "headless" if required | 58 | # x11 is default, set to "fbdev" , "wayland", or "headless" if required |
48 | MALI_BACKEND_DEFAULT ?= "x11" | 59 | MALI_BACKEND_DEFAULT ?= "x11" |
49 | 60 | ||
61 | USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" | ||
62 | USE_FB = "${@bb.utils.contains("DISTRO_FEATURES", "fbdev", "yes", "no", d)}" | ||
63 | USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" | ||
64 | |||
65 | |||
50 | do_install() { | 66 | do_install() { |
51 | #Identify the ARCH type | 67 | #Identify the ARCH type |
52 | ${TARGET_PREFIX}gcc --version > ARCH_PLATFORM | 68 | ${TARGET_PREFIX}gcc --version > ARCH_PLATFORM |
@@ -77,16 +93,29 @@ do_install() { | |||
77 | 93 | ||
78 | cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/common/*.so* ${D}${libdir} | 94 | cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/common/*.so* ${D}${libdir} |
79 | 95 | ||
80 | |||
81 | install -m 0644 ${S}/${PV}/glesHeaders/GBM/gbm.h ${D}${includedir}/ | ||
82 | install -m 0644 ${WORKDIR}/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc | ||
83 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/wayland/libMali.so.8.0 ${D}${libdir}/wayland/libMali.so.8.0 | ||
84 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/x11/libMali.so.8.0 ${D}${libdir}/x11/libMali.so.8.0 | ||
85 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/fbdev/libMali.so.8.0 ${D}${libdir}/fbdev/libMali.so.8.0 | ||
86 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/headless/libMali.so.8.0 ${D}${libdir}/headless/libMali.so.8.0 | 96 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/headless/libMali.so.8.0 ${D}${libdir}/headless/libMali.so.8.0 |
97 | ln -snf headless/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
87 | 98 | ||
88 | # We need to have one of the libraries available at build time for the linker | 99 | if [ "${USE_FB}" = "yes" ]; then |
89 | ln -snf x11/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | 100 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/fbdev/libMali.so.8.0 ${D}${libdir}/fbdev/libMali.so.8.0 |
101 | if [ "${MALI_BACKEND_DEFAULT}" = "fbdev" ]; then | ||
102 | ln -snf fbdev/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
103 | fi | ||
104 | fi | ||
105 | if [ "${USE_X11}" = "yes" ]; then | ||
106 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/x11/libMali.so.8.0 ${D}${libdir}/x11/libMali.so.8.0 | ||
107 | if [ "${MALI_BACKEND_DEFAULT}" = "x11" ]; then | ||
108 | ln -snf x11/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
109 | fi | ||
110 | fi | ||
111 | if [ "${USE_WL}" = "yes" ]; then | ||
112 | install -m 0644 ${S}/${PV}/glesHeaders/GBM/gbm.h ${D}${includedir}/ | ||
113 | install -m 0644 ${WORKDIR}/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc | ||
114 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/wayland/libMali.so.8.0 ${D}${libdir}/wayland/libMali.so.8.0 | ||
115 | if [ "${MALI_BACKEND_DEFAULT}" = "wayland" ]; then | ||
116 | ln -snf wayland/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
117 | fi | ||
118 | fi | ||
90 | } | 119 | } |
91 | 120 | ||
92 | 121 | ||
@@ -115,7 +144,9 @@ ALTERNATIVE_TARGET_libmali-xlnx-headless[libmali-xlnx] = "${libdir}/headless/lib | |||
115 | ALTERNATIVE_PRIORITY_libmali-xlnx-x11[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "x11", "20", "10", d)}" | 144 | ALTERNATIVE_PRIORITY_libmali-xlnx-x11[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "x11", "20", "10", d)}" |
116 | ALTERNATIVE_PRIORITY_libmali-xlnx-fbdev[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "fbdev", "20", "10", d)}" | 145 | ALTERNATIVE_PRIORITY_libmali-xlnx-fbdev[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "fbdev", "20", "10", d)}" |
117 | ALTERNATIVE_PRIORITY_libmali-xlnx-wayland[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "wayland", "20", "10", d)}" | 146 | ALTERNATIVE_PRIORITY_libmali-xlnx-wayland[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "wayland", "20", "10", d)}" |
118 | ALTERNATIVE_PRIORITY_libmali-xlnx-headless[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "headless", "20", "10", d)}" | 147 | |
148 | # If misconfigured, fallback to headless | ||
149 | ALTERNATIVE_PRIORITY_libmali-xlnx-headless[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "headless", "20", "15", d)}" | ||
119 | 150 | ||
120 | 151 | ||
121 | # Package gets renamed on the debian class, but we want to keep -xlnx | 152 | # Package gets renamed on the debian class, but we want to keep -xlnx |