summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt5
-rw-r--r--cmake/Modules/FindOpenCL.cmake39
-rw-r--r--cmake/piglit_util.cmake2
-rw-r--r--cmake/target_api/CMakeLists.txt4
-rw-r--r--cmake/target_api/cl/CMakeLists.txt10
-rw-r--r--tests/util/CMakeLists.cl.txt20
6 files changed, 79 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 893a14d52..b840d5aba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,7 @@ find_package(X11)
option(BUILD_GLES1_TESTS "Build tests for OpenGL ES1" OFF)
option(BUILD_GLES2_TESTS "Build tests for OpenGL ES2" OFF)
+option(BUILD_CL_TESTS "Build tests for OpenCL" OFF)
option(USE_WAFFLE "Use Waffle in place of GLUT" OFF)
if(USE_WAFFLE)
@@ -36,6 +37,10 @@ if(BUILD_GLES2_TESTS AND NOT USE_WAFFLE)
message(FATAL_ERROR "Option BUILD_GLES2_TESTS requires USE_WAFFLE")
endif(BUILD_GLES2_TESTS AND NOT USE_WAFFLE)
+if(BUILD_CL_TESTS)
+ find_package(OpenCL REQUIRED)
+endif(BUILD_CL_TESTS)
+
IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
option(BUILD_GLX_TESTS "Build tests that require GLX" ON)
ELSE()
diff --git a/cmake/Modules/FindOpenCL.cmake b/cmake/Modules/FindOpenCL.cmake
new file mode 100644
index 000000000..52aa8bd4c
--- /dev/null
+++ b/cmake/Modules/FindOpenCL.cmake
@@ -0,0 +1,39 @@
+# Copyright © 2012 Blaž Tomažič <blaz.tomazic@gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+
+# This module defines the following variables:
+#
+# OPENCL_FOUND
+# True if OpenCL is installed.
+#
+# OPENCL_INCLUDE_PATH
+#
+# OPENCL_opencl_LIBRARY
+# Path to OpenCL's library.
+
+find_path(OPENCL_INCLUDE_PATH CL/opencl.h)
+find_library(OPENCL_opencl_LIBRARY OpenCL)
+
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenCL
+ DEFAULT_MSG
+ OPENCL_opencl_LIBRARY OPENCL_INCLUDE_PATH
+ )
diff --git a/cmake/piglit_util.cmake b/cmake/piglit_util.cmake
index fccbadd53..681ce90b5 100644
--- a/cmake/piglit_util.cmake
+++ b/cmake/piglit_util.cmake
@@ -29,7 +29,7 @@ function(piglit_include_target_api)
# Verify that the value of `piglit_target_api` is valid.
set(valid_api FALSE)
- foreach(api "gl" "gles1" "gles2" "no_api")
+ foreach(api "gl" "gles1" "gles2" "cl" "no_api")
if(piglit_target_api STREQUAL ${api})
set(valid_api TRUE)
break()
diff --git a/cmake/target_api/CMakeLists.txt b/cmake/target_api/CMakeLists.txt
index f152ba206..d3e23f9ff 100644
--- a/cmake/target_api/CMakeLists.txt
+++ b/cmake/target_api/CMakeLists.txt
@@ -32,3 +32,7 @@ endif(BUILD_GLES1_TESTS)
if(BUILD_GLES2_TESTS)
add_subdirectory(gles2)
endif(BUILD_GLES2_TESTS)
+
+if(BUILD_CL_TESTS)
+ add_subdirectory(cl)
+endif(BUILD_CL_TESTS)
diff --git a/cmake/target_api/cl/CMakeLists.txt b/cmake/target_api/cl/CMakeLists.txt
new file mode 100644
index 000000000..7145ba1eb
--- /dev/null
+++ b/cmake/target_api/cl/CMakeLists.txt
@@ -0,0 +1,10 @@
+set(piglit_target_api "cl")
+
+add_definitions(
+ -DUSE_OPENCL
+ )
+
+add_subdirectory(${piglit_SOURCE_DIR}/tests
+ ${piglit_BINARY_DIR}/target_api/${piglit_target_api}/tests
+ )
+
diff --git a/tests/util/CMakeLists.cl.txt b/tests/util/CMakeLists.cl.txt
new file mode 100644
index 000000000..fac7695a1
--- /dev/null
+++ b/tests/util/CMakeLists.cl.txt
@@ -0,0 +1,20 @@
+include_directories(
+ ${UTIL_INCLUDES}
+ ${OPENCL_INCLUDE_PATH}
+ )
+
+link_libraries(
+ piglitutil
+ ${OPENCL_opencl_LIBRARY}
+ )
+
+piglit_add_library (piglitutil_${piglit_target_api}
+ piglit-util-cl.c
+ piglit-util-cl-enum.c
+ piglit-framework-cl.c
+ piglit-framework-cl-custom.c
+ piglit-framework-cl-api.c
+ piglit-framework-cl-program.c
+)
+
+# vim: ft=cmake: