opencl-cts: Add recipe

This recipe provides the opecl-cts suite.  This is a pre-release version
v2024-08-08, which I have tested to work with opencl-headers version v2024.05.08
. The pre-release version was picked due to incompatibility issues with other
versions of headers.

Add a patch to add an option to disable warning as error

Signed-off-by: Antonios Christidis <a-christidis@ti.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Antonios Christidis
2025-01-27 08:55:33 -06:00
committed by Khem Raj
parent 80f9812ab2
commit 2183c03811
2 changed files with 71 additions and 0 deletions
@@ -0,0 +1,43 @@
From 082ce10dd191f036f5a6e1fb31134e9736ba3643 Mon Sep 17 00:00:00 2001
From: Antonios Christidis <a-christidis@ti.com>
Date: Fri, 17 Jan 2025 15:05:39 -0600
Subject: [PATCH] Create CMake option ENABLE_WERROR
This creates an option that can be toggled on or off when configuring the project.
By default, it's set to ON
Upstream-Status: Pending
Signed-off-by: Antonios Christidis <a-christidis@ti.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
CMakeLists.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,16 @@ add_definitions(-DCL_USE_DEPRECATED_OPEN
add_definitions(-DCL_USE_DEPRECATED_OPENCL_1_0_APIS=1)
add_definitions(-DCL_NO_EXTENSION_PROTOTYPES)
+option(ENABLE_WERROR "Enable warnings as errors" ON)
+
+if(ENABLE_WERROR)
+ if(MSVC)
+ add_compile_options(/WX)
+ else()
+ add_compile_options(-Werror)
+ endif()
+endif()
+
option(USE_CL_EXPERIMENTAL "Use Experimental definitions" OFF)
if(USE_CL_EXPERIMENTAL)
add_definitions(-DCL_EXPERIMENTAL)
@@ -99,7 +109,6 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C
add_cxx_flag_if_supported(-Wmisleading-indentation)
add_cxx_flag_if_supported(-Wunused-function)
add_cxx_flag_if_supported(-Wunused-variable)
- add_cxx_flag_if_supported(-Werror)
if(NOT CMAKE_BUILD_TYPE MATCHES "Release|RelWithDebInfo|MinSizeRel")
# Enable more warnings if not doing a release build.
add_cxx_flag_if_supported(-Wall)
@@ -0,0 +1,28 @@
SUMMARY = "OpenCL CTS"
DESCRIPTION = "OpenCL CTS test suite"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
inherit pkgconfig cmake
DEPENDS += "opencl-headers opencl-icd-loader"
RDEPENDS:${PN} += "python3-core python3-io"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/KhronosGroup/OpenCL-CTS.git;protocol=https;branch=main;lfs=0 \
file://0001-Ignore-Compiler-Warnings.patch"
SRCREV = "a406b340913f622da089b00f284a597656c10239"
EXTRA_OECMAKE:append = " -DENABLE_WERROR=OFF -DCL_INCLUDE_DIR=${STAGING_INCDIR} -DCL_LIB_DIR=${STAGING_LIBDIR} -DOPENCL_LIBRARIES=OpenCL"
SECURITY_STRINGFORMAT:remove = "-Werror=format-security"
do_install() {
install -d ${D}${bindir}/opencl_test_conformance
cp -r ${B}/test_conformance/* ${D}${bindir}/opencl_test_conformance
sed -i 's:/usr/bin/python:/usr/bin/python3:g' ${D}${bindir}/opencl_test_conformance/run_conformance.py
find "${D}${bindir}/opencl_test_conformance" -name cmake_install.cmake -type f -delete
find "${D}${bindir}/opencl_test_conformance" -name CMakeFiles -type d -exec rm -rf "{}" \; -depth
}