summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>2019-03-15 15:16:19 -0700
committerSai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>2019-11-19 16:01:14 -0800
commit366e381bc831aa875ac7d8528696ed3b7de5ccdb (patch)
treea8e521192d2d2882fd35cab7d0f1cbba93b8fab9
parent7078bdc5547ab5a78c23dea7f833f9e7f1146e59 (diff)
downloadmeta-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.bb55
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
39S = "${WORKDIR}/git" 39S = "${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
42RDEPENDS_${PN} = " kernel-module-mali libxdamage libxext libx11 libdrm libxfixes" 42X11RDEPENDS = "libxdamage libxext libx11 libdrm libxfixes"
43X11DEPENDS = "libxdamage libxext virtual/libx11 libdrm libxfixes"
44
45# Don't install runtime dependencies for other backends unless the DISTRO supports it
46RDEPENDS_${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
45DEPENDS = "wayland" 52DEPENDS = "\
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
48MALI_BACKEND_DEFAULT ?= "x11" 59MALI_BACKEND_DEFAULT ?= "x11"
49 60
61USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}"
62USE_FB = "${@bb.utils.contains("DISTRO_FEATURES", "fbdev", "yes", "no", d)}"
63USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}"
64
65
50do_install() { 66do_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
115ALTERNATIVE_PRIORITY_libmali-xlnx-x11[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "x11", "20", "10", d)}" 144ALTERNATIVE_PRIORITY_libmali-xlnx-x11[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "x11", "20", "10", d)}"
116ALTERNATIVE_PRIORITY_libmali-xlnx-fbdev[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "fbdev", "20", "10", d)}" 145ALTERNATIVE_PRIORITY_libmali-xlnx-fbdev[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "fbdev", "20", "10", d)}"
117ALTERNATIVE_PRIORITY_libmali-xlnx-wayland[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "wayland", "20", "10", d)}" 146ALTERNATIVE_PRIORITY_libmali-xlnx-wayland[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "wayland", "20", "10", d)}"
118ALTERNATIVE_PRIORITY_libmali-xlnx-headless[libmali-xlnx] = "${@bb.utils.contains("MALI_BACKEND_DEFAULT", "headless", "20", "10", d)}" 147
148# If misconfigured, fallback to headless
149ALTERNATIVE_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