You've already forked libmali-rockchip
mirror of
https://github.com/armbian/libmali-rockchip.git
synced 2026-01-06 12:03:41 -08:00
meson: Detect CL version
Different DDK might have different CL versions. Change-Id: I7384a0f653e3e774cc46a4c545a5697986a31e27 Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
This commit is contained in:
28
meson.build
28
meson.build
@@ -146,6 +146,23 @@ cl_headers = {
|
||||
'include/CL' : 'CL',
|
||||
}
|
||||
|
||||
if cc.has_function('clCreateBufferWithProperties', dependencies : mali)
|
||||
cl_version = '3.0'
|
||||
cl_target_version = '300'
|
||||
elif cc.has_function('clSetProgramReleaseCallback', dependencies : mali)
|
||||
cl_version = '2.2'
|
||||
cl_target_version = '220'
|
||||
elif cc.has_function('clCloneKernel', dependencies : mali)
|
||||
cl_version = '2.1'
|
||||
cl_target_version = '210'
|
||||
elif cc.has_function('clCreatePipe', dependencies : mali)
|
||||
cl_version = '2.0'
|
||||
cl_target_version = '200'
|
||||
else
|
||||
cl_version = '1.2'
|
||||
cl_target_version = '120'
|
||||
endif
|
||||
|
||||
# Package name : required symbol, wrappers, headers, package version
|
||||
map = {
|
||||
'gbm' : ['gbm_create_device', gbm_wrappers, gbm_headers, gbm_version],
|
||||
@@ -154,7 +171,7 @@ map = {
|
||||
'glesv2' : ['eglCreateContext', glesv2_wrappers, glesv2_headers, '7.10'],
|
||||
'wayland-egl' : ['wl_egl_window_create', wayland_wrappers,
|
||||
wayland_egl_headers, '18.1.0'],
|
||||
'OpenCL' : ['clCreateContext', cl_wrappers, cl_headers, '1.2'],
|
||||
'OpenCL' : ['clCreateContext', cl_wrappers, cl_headers, cl_version],
|
||||
'vulkan' : ['vk_icdGetInstanceProcAddr', vk_wrappers, {}, mali_version],
|
||||
}
|
||||
|
||||
@@ -204,6 +221,7 @@ foreach name, values : map
|
||||
wrapper_libs = values[1]
|
||||
headers = values[2]
|
||||
pkg_version = values[3]
|
||||
pkg_cflags = []
|
||||
is_opencl_icd = opencl_icd and name == 'OpenCL'
|
||||
is_vulkan_icd = name == 'vulkan'
|
||||
|
||||
@@ -268,8 +286,16 @@ foreach name, values : map
|
||||
get_option('includedir'))
|
||||
endif
|
||||
|
||||
if name == 'OpenCL'
|
||||
pkg_cflags += ['-DCL_TARGET_OPENCL_VERSION=' + cl_target_version]
|
||||
|
||||
meson.add_install_script('scripts/fixup_cl.sh',
|
||||
get_option('includedir'), cl_version)
|
||||
endif
|
||||
|
||||
pkgconfig.generate(
|
||||
libraries : mali_ldflags,
|
||||
extra_cflags : pkg_cflags,
|
||||
requires : requires,
|
||||
version : pkg_version,
|
||||
name : name,
|
||||
|
||||
19
scripts/fixup_cl.sh
Executable file
19
scripts/fixup_cl.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh -e
|
||||
|
||||
[ $# -lt 2 ] && {
|
||||
echo "usage: $0 <path of include> <cl version>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
HEADER="${MESON_INSTALL_DESTDIR_PREFIX:-/usr}/$1/CL/cl_version.h"
|
||||
|
||||
if [ -f "$HEADER" ]; then
|
||||
VER="$2"
|
||||
TARGET_VER=$(echo "$VER * 100" | bc | sed "s/\.0$//")
|
||||
|
||||
sed -i -e "s/\(Defaulting to \).* ([^)]*/\1$TARGET_VER (OpenCL $VER/" \
|
||||
-e "s/\(^#define CL_TARGET_OPENCL_VERSION \).*/\1$TARGET_VER/" \
|
||||
"$HEADER"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user