diff options
| author | Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com> | 2018-12-11 07:40:18 -0800 |
|---|---|---|
| committer | Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> | 2019-01-01 20:03:46 -0800 |
| commit | b070d521bb108b2c84ca3875e40f69b964b651f3 (patch) | |
| tree | ed222f50712d22809cdc12bbca9839cae6af8597 | |
| parent | 55175036a45e4a590baca71fa4d29cdbab04b5ac (diff) | |
| download | meta-xilinx-b070d521bb108b2c84ca3875e40f69b964b651f3.tar.gz | |
libmali-xlnx.bb: Add support for wayland in libMali
Along with X11 and fbdev, MALI will now have wayland support as well.
Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com>
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
3 files changed, 62 insertions, 14 deletions
diff --git a/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc b/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc new file mode 100644 index 00000000..02ea94e6 --- /dev/null +++ b/meta-xilinx-bsp/recipes-graphics/libgles/files/gbm.pc | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | prefix=/usr | ||
| 2 | exec_prefix=${prefix} | ||
| 3 | libdir=/usr/lib | ||
| 4 | includedir=/usr/include | ||
| 5 | |||
| 6 | Name: gbm | ||
| 7 | Description: MALI gbm library | ||
| 8 | Requires.private: | ||
| 9 | Version: r8p0 | ||
| 10 | Libs: -L${libdir} -lgbm | ||
| 11 | Libs.private: -lm -lpthread -ldl | ||
| 12 | Cflags: -I${includedir} | ||
diff --git a/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc b/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc new file mode 100644 index 00000000..719fb3e4 --- /dev/null +++ b/meta-xilinx-bsp/recipes-graphics/libgles/files/wayland-egl.pc | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | prefix=/usr | ||
| 2 | exec_prefix=${prefix} | ||
| 3 | libdir=/usr/lib | ||
| 4 | includedir=/usr/include | ||
| 5 | |||
| 6 | Name: wayland-egl | ||
| 7 | Description: MALI wayland-egl library | ||
| 8 | Requires.private: | ||
| 9 | Version: r8p0 | ||
| 10 | Libs: -L${libdir} -lwayland-egl | ||
| 11 | Libs.private: -lm -lpthread -ldl | ||
| 12 | Cflags: -I${includedir} | ||
diff --git a/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb b/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb index 3e675d9d..8c6ab3e9 100644 --- a/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb +++ b/meta-xilinx-bsp/recipes-graphics/libgles/libmali-xlnx.bb | |||
| @@ -9,7 +9,7 @@ inherit xilinx-fetch-restricted | |||
| 9 | 9 | ||
| 10 | ANY_OF_DISTRO_FEATURES = "fbdev x11" | 10 | ANY_OF_DISTRO_FEATURES = "fbdev x11" |
| 11 | 11 | ||
| 12 | PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl" | 12 | PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm" |
| 13 | 13 | ||
| 14 | FILESEXTRAPATHS_append := " \ | 14 | FILESEXTRAPATHS_append := " \ |
| 15 | ${THISDIR}/files: \ | 15 | ${THISDIR}/files: \ |
| @@ -26,10 +26,12 @@ SRC_URI = " \ | |||
| 26 | file://glesv1_cm.pc \ | 26 | file://glesv1_cm.pc \ |
| 27 | file://glesv1.pc \ | 27 | file://glesv1.pc \ |
| 28 | file://glesv2.pc \ | 28 | file://glesv2.pc \ |
| 29 | file://wayland-egl.pc \ | ||
| 30 | file://gbm.pc \ | ||
| 29 | " | 31 | " |
| 30 | 32 | ||
| 31 | SRC_URI[md5sum] = "e75b147c8b4ee96616e24572cdc9c21f" | 33 | SRC_URI[md5sum] = "4fd3456564ef8c818e21432221c9e1b7" |
| 32 | SRC_URI[sha256sum] = "7b179ec2df54ee05a886cca1535c0bdc6cba77a646e22742adedc79bfc2b3017" | 34 | SRC_URI[sha256sum] = "26d473ae77c36104a215710beca55a22a712850dc26547dde950c7398210602c" |
| 33 | 35 | ||
| 34 | COMPATIBLE_MACHINE = "^$" | 36 | COMPATIBLE_MACHINE = "^$" |
| 35 | COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg" | 37 | COMPATIBLE_MACHINE_zynqmpeg = "zynqmpeg" |
| @@ -50,14 +52,16 @@ RDEPENDS_${PN} = " \ | |||
| 50 | 52 | ||
| 51 | DEPENDS = "\ | 53 | DEPENDS = "\ |
| 52 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \ | 54 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${X11DEPENDS}', '', d)} \ |
| 55 | ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland libdrm', '', d)} \ | ||
| 53 | " | 56 | " |
| 54 | 57 | ||
| 55 | EGL_TYPE = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \ | 58 | USE_X11 = "${@bb.utils.contains("DISTRO_FEATURES", "x11", "yes", "no", d)}" |
| 56 | bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'fbdev', '', d), d)}" | 59 | USE_FB = "${@bb.utils.contains("DISTRO_FEATURES", "fbdev", "yes", "no", d)}" |
| 60 | USE_WL = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "yes", "no", d)}" | ||
| 57 | 61 | ||
| 58 | do_compile() { | 62 | do_compile() { |
| 59 | # Extract the MALI binaries into workdir | 63 | # Extract the MALI binaries into workdir |
| 60 | tar -xf ${WORKDIR}/mali/rel-v2018.1/r8p0-01rel0.tar -C ${S} | 64 | tar -xf ${WORKDIR}/mali/rel-v2018.3/r8p0-01rel0.tar -C ${S} |
| 61 | } | 65 | } |
| 62 | 66 | ||
| 63 | do_install() { | 67 | do_install() { |
| @@ -71,13 +75,13 @@ do_install() { | |||
| 71 | 75 | ||
| 72 | # install headers | 76 | # install headers |
| 73 | install -d -m 0655 ${D}${includedir}/EGL | 77 | install -d -m 0655 ${D}${includedir}/EGL |
| 74 | install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/EGL/*.h ${D}${includedir}/EGL/ | 78 | install -m 0644 ${S}/${PV}/glesHeaders/EGL/*.h ${D}${includedir}/EGL/ |
| 75 | install -d -m 0655 ${D}${includedir}/GLES | 79 | install -d -m 0655 ${D}${includedir}/GLES |
| 76 | install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/GLES/*.h ${D}${includedir}/GLES/ | 80 | install -m 0644 ${S}/${PV}/glesHeaders/GLES/*.h ${D}${includedir}/GLES/ |
| 77 | install -d -m 0655 ${D}${includedir}/GLES2 | 81 | install -d -m 0655 ${D}${includedir}/GLES2 |
| 78 | install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/GLES2/*.h ${D}${includedir}/GLES2/ | 82 | install -m 0644 ${S}/${PV}/glesHeaders/GLES2/*.h ${D}${includedir}/GLES2/ |
| 79 | install -d -m 0655 ${D}${includedir}/KHR | 83 | install -d -m 0655 ${D}${includedir}/KHR |
| 80 | install -m 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/include/KHR/*.h ${D}${includedir}/KHR/ | 84 | install -m 0644 ${S}/${PV}/glesHeaders/KHR/*.h ${D}${includedir}/KHR/ |
| 81 | 85 | ||
| 82 | install -d ${D}${libdir}/pkgconfig | 86 | install -d ${D}${libdir}/pkgconfig |
| 83 | install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc | 87 | install -m 0644 ${WORKDIR}/egl.pc ${D}${libdir}/pkgconfig/egl.pc |
| @@ -86,7 +90,26 @@ do_install() { | |||
| 86 | install -m 0644 ${WORKDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc | 90 | install -m 0644 ${WORKDIR}/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc |
| 87 | 91 | ||
| 88 | install -d ${D}${libdir} | 92 | install -d ${D}${libdir} |
| 89 | cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/${EGL_TYPE}/usr/lib/*.so* ${D}${libdir} | 93 | install -d ${D}${includedir} |
| 94 | |||
| 95 | cp -a --no-preserve=ownership ${S}/${PV}/${ARCH_PLATFORM_DIR}/common/*.so* ${D}${libdir} | ||
| 96 | |||
| 97 | if [ "${USE_WL}" = "yes" ]; then | ||
| 98 | install -m 0644 ${S}/${PV}/glesHeaders/GBM/gbm.h ${D}${includedir}/ | ||
| 99 | install -m 0644 ${WORKDIR}/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc | ||
| 100 | install -m 0644 ${WORKDIR}/wayland-egl.pc ${D}${libdir}/pkgconfig/wayland-egl.pc | ||
| 101 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/wayland/libMali.so.8.0 ${D}${libdir}/wayland/libMali.so.8.0 | ||
| 102 | ln -snf wayland/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
| 103 | elif [ "${USE_X11}" = "yes" ]; then | ||
| 104 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/x11/libMali.so.8.0 ${D}${libdir}/x11/libMali.so.8.0 | ||
| 105 | ln -snf x11/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
| 106 | elif [ "${USE_FB}" = "yes" ]; then | ||
| 107 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/fbdev/libMali.so.8.0 ${D}${libdir}/fbdev/libMali.so.8.0 | ||
| 108 | ln -snf fbdev/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
| 109 | else | ||
| 110 | install -Dm 0644 ${S}/${PV}/${ARCH_PLATFORM_DIR}/headless/libMali.so.8.0 ${D}${libdir}/headless/libMali.so.8.0 | ||
| 111 | ln -snf headless/libMali.so.8.0 ${D}${libdir}/libMali.so.8.0 | ||
| 112 | fi | ||
| 90 | 113 | ||
| 91 | if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then | 114 | if ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'false', 'true', d)}; then |
| 92 | sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if (1)/' ${D}${includedir}/EGL/eglplatform.h | 115 | sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if (1)/' ${D}${includedir}/EGL/eglplatform.h |
| @@ -99,10 +122,11 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | |||
| 99 | INHIBIT_PACKAGE_STRIP = "1" | 122 | INHIBIT_PACKAGE_STRIP = "1" |
| 100 | INHIBIT_SYSROOT_STRIP = "1" | 123 | INHIBIT_SYSROOT_STRIP = "1" |
| 101 | 124 | ||
| 102 | RREPLACES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2" | 125 | RREPLACES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm" |
| 103 | RPROVIDES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2" | 126 | RPROVIDES_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm" |
| 104 | RCONFLICTS_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2" | 127 | RCONFLICTS_${PN} = "libegl libgles1 libglesv1-cm1 libgles2 libglesv2-2 libgbm" |
| 105 | 128 | ||
| 106 | # These libraries shouldn't get installed in world builds unless something | 129 | # These libraries shouldn't get installed in world builds unless something |
| 107 | # explicitly depends upon them. | 130 | # explicitly depends upon them. |
| 108 | EXCLUDE_FROM_WORLD = "1" | 131 | EXCLUDE_FROM_WORLD = "1" |
| 132 | FILES_${PN} += "${libdir}/*" | ||
