summaryrefslogtreecommitdiffstats
path: root/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb')
-rw-r--r--meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb145
1 files changed, 145 insertions, 0 deletions
diff --git a/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb
new file mode 100644
index 00000000..288eb52b
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/powervr-umlibs/ti-img-rogue-umlibs_23.3.6512818.bb
@@ -0,0 +1,145 @@
1DESCRIPTION = "Userspace libraries for PowerVR Rogue GPU on TI SoCs"
2HOMEPAGE = "http://git.ti.com/graphics/ti-img-rogue-umlibs"
3LICENSE = "TI-TFL"
4LIC_FILES_CHKSUM = "file://${WORKDIR}/git/LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
5
6inherit bin_package
7
8INHIBIT_DEFAULT_DEPS = ""
9
10PACKAGE_ARCH = "${MACHINE_ARCH}"
11COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|am62xx|am62pxx|j722s"
12
13PR = "r3"
14
15BRANCH = "linuxws/kirkstone/k6.1/${PV}"
16SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
17SRCREV = "0b9e64254269be2fa95c4f3e1dd925d6e4d58199"
18S = "${WORKDIR}/git/targetfs/${TARGET_PRODUCT}/${PVR_WS}/${PVR_BUILD}"
19
20TARGET_PRODUCT:j721e = "j721e_linux"
21TARGET_PRODUCT:j721s2 = "j721s2_linux"
22TARGET_PRODUCT:j784s4 = "j784s4_linux"
23TARGET_PRODUCT:am62xx = "am62_linux"
24TARGET_PRODUCT:am62pxx = "am62p_linux"
25TARGET_PRODUCT:j722s = "j722s_linux"
26PVR_BUILD = "release"
27PVR_WS = "lws-generic"
28
29RDEPENDS:${PN} = " \
30 libdrm \
31 ti-img-rogue-driver \
32 ${PN}-firmware \
33"
34
35PACKAGECONFIG ?= " \
36 ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan wayland', 'vulkan', '', d)} \
37 ${@bb.utils.filter('DISTRO_FEATURES', 'opengl opencl', d)} \
38"
39
40PACKAGECONFIG[opengl] = ",,,,${GLES_PACKAGES}"
41PACKAGECONFIG[vulkan] = ",,,,${VULKAN_PACKAGES}"
42PACKAGECONFIG[opencl] = ",,,,${OPENCL_PACKAGES}"
43
44def get_file_list(package_list_var, d):
45 file_list = []
46 package_list = d.getVar(package_list_var)
47 prefix = f"{d.getVar('S')}/"
48 if package_list:
49 for package in package_list.split():
50 package_file_string = d.getVar(f"FILES:{package}")
51 if package_file_string:
52 for package_file in package_file_string.split():
53 file_list.append(f"{prefix}{package_file}")
54 return " ".join(file_list)
55
56do_install:prepend() {
57 if ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'false', 'true', d)}; then
58 for file in ${@get_file_list('GLES_PACKAGES', d)}; do
59 rm -rf ${file}
60 done
61 fi
62 if ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', 'false', 'true', d)}; then
63 for file in ${@get_file_list('VULKAN_PACKAGES', d)}; do
64 rm -rf ${file}
65 done
66 fi
67 if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'false', 'true', d)}; then
68 for file in ${@get_file_list('OPENCL_PACKAGES', d)}; do
69 rm -rf ${file}
70 done
71 fi
72 if ${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', 'true', 'false', d)}; then
73 if [ -e ${S}/lib/firmware ]; then
74 mv ${S}/lib/firmware ${S}${nonarch_base_libdir}
75 fi
76 fi
77
78 # clean up any empty directories
79 find "${S}" -empty -type d -delete
80}
81
82GLES_PACKAGES = "libgles1-rogue libgles2-rogue libgles3-rogue"
83VULKAN_PACKAGES = "libvk-rogue"
84OPENCL_PACKAGES = "libopencl-rogue libopencl-rogue-tools"
85
86PACKAGES = " \
87 ${@bb.utils.contains('PACKAGECONFIG', 'opengl', d.getVar('GLES_PACKAGES'), '', d)} \
88 ${@bb.utils.contains('PACKAGECONFIG', 'vulkan', d.getVar('VULKAN_PACKAGES'), '', d)} \
89 ${@bb.utils.contains('PACKAGECONFIG', 'opencl', d.getVar('OPENCL_PACKAGES'), '', d)} \
90 ${PN}-tools \
91 ${PN}-firmware \
92 ${PN} \
93"
94
95# Inject variables so that packages don't get Debian-renamed (which would
96# remove the -rogue suffix), but don't RPROVIDEs/RCONFLICTs on the generic
97# libgl name to prevent colliding with swrast libs
98python __anonymous() {
99 suffix = ""
100 if "-native" in d.getVar("PN"):
101 suffix = "-native"
102 for p in (("vulkan", "libvk",),
103 ("gles", "libgles1", "libglesv1-cm1"),
104 ("gles", "libgles2", "libglesv2-2"),
105 ("gles", "libgles3",),
106 ("opencl", "libopencl",)):
107 mlprefix = d.getVar("MLPREFIX")
108 fullp = mlprefix + p[1] + "-rogue" + suffix
109 mlprefix = d.getVar("MLPREFIX")
110 pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
111 d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
112 d.setVar("INSANE_SKIP:" + fullp, "dev-so")
113 d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}ti-img-rogue-umlibs" + suffix)
114}
115
116# gles specific shared objects
117FILES:libgles1-rogue = "${libdir}/libGLESv1*.so*"
118FILES:libgles2-rogue = "${libdir}/libGLESv2*.so*"
119RDEPENDS:libgles1-rogue += "mesa-megadriver"
120RDEPENDS:libgles2-rogue += "mesa-megadriver"
121
122# vulkan specific shared objects and configs
123FILES:libvk-rogue = "${libdir}/libVK_IMG.so* ${datadir}/vulkan"
124RDEPENDS:libvk-rogue += "vulkan-loader wayland libdrm"
125
126# opencl specific shared objects and configs
127FILES:libopencl-rogue = "${libdir}/libPVROCL.so* ${sysconfdir}/OpenCL"
128RDEPENDS:libopencl-rogue += "opencl-icd-loader"
129RRECOMMENDS:libopencl-rogue += "libopencl-rogue-tools"
130FILES:libopencl-rogue-tools += "${bindir}/ocl*"
131DEBIAN_NOAUTONAME:libopencl-rogue-tools = "1"
132
133# optional tools and tests
134FILES:${PN}-tools = "${bindir}/"
135RDEPENDS:${PN}-tools = "python3-core ${PN}"
136
137# required firmware
138FILES:${PN}-firmware = "${base_libdir}/firmware/*"
139INSANE_SKIP:${PN}-firmware += "arch"
140
141RRECOMMENDS:${PN} += " \
142 ${PN}-tools \
143"
144
145INSANE_SKIP:${PN} += "already-stripped dev-so"