summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorYang, Rong R <rong.r.yang@intel.com>2016-11-28 19:32:45 +0800
committerYang Rong <rong.r.yang@intel.com>2016-12-30 16:22:27 +0800
commit634b0d14bde9fb3392feade5bd7d5776620e4f0a (patch)
tree6e95d750d6de75cd9cb3fb423fa7523b2144edae /CMakeLists.txt
parent4229ed8a890cd25e43109236fb7fc364c401267c (diff)
downloadbeignet-634b0d14bde9fb3392feade5bd7d5776620e4f0a.tar.gz
CMake: add an option to enable OpenCL 2.0.
The OpenCL 2.0 is disable default, to enable it, using option -DENABLE_OPENCL_20 to enable it. Now skylake and newer devices support OpenCL 2.0, if enable OpenCL 2.0, LLVM 3.9 and libdrm 2.4.66 is required. Signed-off-by: Yang Rong <rong.r.yang@intel.com> Reviewed-by: Pan Xiuli <xiuli.pan@intel.com>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt56
1 files changed, 41 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f529d4b..a24ccb97 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,15 +16,6 @@ endif ()
CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
PROJECT(OCL)
-set (LIBCL_DRIVER_VERSION_MAJOR 1)
-set (LIBCL_DRIVER_VERSION_MINOR 3)
-if (ENABLE_OPENCL_20)
- set (LIBCL_C_VERSION_MAJOR 2)
- set (LIBCL_C_VERSION_MINOR 0)
-else (ENABLE_OPENCL_20)
- set (LIBCL_C_VERSION_MAJOR 1)
- set (LIBCL_C_VERSION_MINOR 2)
-endif (ENABLE_OPENCL_20)
if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
set(COMPILER "CLANG")
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
@@ -32,11 +23,6 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL "Intel")
set(COMPILER "ICC")
endif()
-configure_file (
- "src/OCLConfig.h.in"
- "src/OCLConfig.h"
-)
-
set (NOT_BUILD_STAND_ALONE_UTEST 1)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
@@ -241,10 +227,50 @@ ENDIF(OCLIcd_FOUND)
Find_Package(PythonInterp)
OPTION(EXPERIMENTAL_DOUBLE "Enable experimental double support" OFF)
-IF(EXPERIMENTAL_DOUBLE)
+IF (EXPERIMENTAL_DOUBLE)
ADD_DEFINITIONS(-DENABLE_FP64)
ENDIF(EXPERIMENTAL_DOUBLE)
+OPTION(ENABLE_OPENCL_20 "Enable opencl 2.0 support" OFF)
+IF (ENABLE_OPENCL_20)
+ Find_Program(LSPCI lspci)
+ IF (NOT LSPCI)
+ MESSAGE(FATAL_ERROR "Looking for lspci - not found")
+ ENDIF (NOT LSPCI)
+ EXECUTE_PROCESS(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh"
+ RESULT_VARIABLE SUPPORT_OCL20_DEVICE
+ OUTPUT_VARIABLE PCI_ID_NOT_USED)
+
+ IF (NOT SUPPORT_OCL20_DEVICE EQUAL 1)
+ MESSAGE(FATAL_ERROR "Only SKL and newer devices support OpenCL 2.0 now, your device don't support.")
+ ENDIF (NOT SUPPORT_OCL20_DEVICE EQUAL 1)
+
+ IF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN)
+ MESSAGE(FATAL_ERROR "Please update libdrm to version 2.4.66 or later to enable OpenCL 2.0.")
+ ENDIF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN)
+
+ IF (LLVM_VERSION_NODOT VERSION_LESS 39)
+ MESSAGE(FATAL_ERROR "Please update LLVM to version 3.9 or later to enable OpenCL 2.0.")
+ ENDIF (LLVM_VERSION_NODOT VERSION_LESS 39)
+
+ ADD_DEFINITIONS(-DENABLE_OPENCL_20)
+ENDIF(ENABLE_OPENCL_20)
+
+set (LIBCL_DRIVER_VERSION_MAJOR 1)
+set (LIBCL_DRIVER_VERSION_MINOR 3)
+if (ENABLE_OPENCL_20)
+ set (LIBCL_C_VERSION_MAJOR 2)
+ set (LIBCL_C_VERSION_MINOR 0)
+else (ENABLE_OPENCL_20)
+ set (LIBCL_C_VERSION_MAJOR 1)
+ set (LIBCL_C_VERSION_MINOR 2)
+endif (ENABLE_OPENCL_20)
+configure_file (
+ "src/OCLConfig.h.in"
+ "src/OCLConfig.h"
+)
+
+
OPTION(BUILD_EXAMPLES "Build examples" OFF)
IF(BUILD_EXAMPLES)
IF(NOT X11_FOUND)