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