[Beignet] [PATCH 2/2] CMake: use CHECK_LIBRARY_EXISTS to check the function instead of version.

Yang Rong rong.r.yang at intel.com
Wed Jun 15 08:13:44 UTC 2016


Signed-off-by: Yang Rong <rong.r.yang at intel.com>
---
 CMakeLists.txt     | 25 ++++++++++++++-----------
 src/CMakeLists.txt | 40 ++++++++++++++++++++--------------------
 2 files changed, 34 insertions(+), 31 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7f43fa2..fae3e88 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -129,27 +129,30 @@ ELSE(DRM_FOUND)
   MESSAGE(STATUS "Looking for DRM - not found")
 ENDIF(DRM_FOUND)
 
+include(CheckLibraryExists)
 # DRM Intel
 pkg_check_modules(DRM_INTEL libdrm_intel>=2.4.52)
 IF(DRM_INTEL_FOUND)
   INCLUDE_DIRECTORIES(${DRM_INTEL_INCLUDE_DIRS})
   MESSAGE(STATUS "Looking for DRM Intel - found at ${DRM_INTEL_PREFIX} ${DRM_INTEL_VERSION}")
-  #userptr support starts from 2.4.57, but 2.4.58 is the actual stable release
-  IF(DRM_INTEL_VERSION VERSION_GREATER 2.4.57)
+  CHECK_LIBRARY_EXISTS(drm_intel "drm_intel_bo_alloc_userptr" "" HAVE_DRM_INTEL_USERPTR)
+  IF(HAVE_DRM_INTEL_USERPTR)
     MESSAGE(STATUS "Enable userptr support")
-    SET(DRM_INTEL_USERPTR "enable")
-  ELSE(DRM_INTEL_VERSION VERSION_GREATER 2.4.57)
+  ELSE(HAVE_DRM_INTEL_USERPTR)
     MESSAGE(STATUS "Disable userptr support")
-  ENDIF(DRM_INTEL_VERSION VERSION_GREATER 2.4.57)
-  IF(DRM_INTEL_VERSION VERSION_GREATER 2.4.59)
+  ENDIF(HAVE_DRM_INTEL_USERPTR)
+  CHECK_LIBRARY_EXISTS(drm_intel "drm_intel_get_eu_total" "" HAVE_DRM_INTEL_EU_TOTAL)
+  IF(HAVE_DRM_INTEL_EU_TOTAL)
     MESSAGE(STATUS "Enable EU total query support")
-    SET(DRM_INTEL_EU_TOTAL "enable")
-    MESSAGE(STATUS "Enable subslice total query support")
-    SET(DRM_INTEL_SUBSLICE_TOTAL "enable")
-  ELSE(DRM_INTEL_VERSION VERSION_GREATER 2.4.59)
+  ELSE(HAVE_DRM_INTEL_EU_TOTAL)
     MESSAGE(STATUS "Disable EU total query support")
+  ENDIF(HAVE_DRM_INTEL_EU_TOTAL)
+  CHECK_LIBRARY_EXISTS(drm_intel "drm_intel_get_subslice_total" "" HAVE_DRM_INTEL_SUBSLICE_TOTAL)
+  IF(HAVE_DRM_INTEL_SUBSLICE_TOTAL)
+    MESSAGE(STATUS "Enable subslice total query support")
+  ELSE(HAVE_DRM_INTEL_SUBSLICE_TOTAL)
     MESSAGE(STATUS "Disable subslice total query support")
-  ENDIF(DRM_INTEL_VERSION VERSION_GREATER 2.4.59)
+  ENDIF(HAVE_DRM_INTEL_SUBSLICE_TOTAL)
 ELSE(DRM_INTEL_FOUND)
   MESSAGE(FATAL_ERROR "Looking for DRM Intel (>= 2.4.52) - not found")
 ENDIF(DRM_INTEL_FOUND)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 96a470c..98f8423 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -109,34 +109,34 @@ if (CMRT_FOUND)
 endif (CMRT_FOUND)
 
 if (EGL_FOUND AND MESA_SOURCE_FOUND)
-set (OPENCL_SRC ${OPENCL_SRC} cl_mem_gl.c cl_gl_api.c x11/mesa_egl_extension.c x11/mesa_egl_res_share.c intel/intel_dri_resource_sharing.c)
-SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS}")
-SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS}")
-SET(OPTIONAL_EGL_LIBRARY "${EGL_LIBRARY}")
+  set (OPENCL_SRC ${OPENCL_SRC} cl_mem_gl.c cl_gl_api.c x11/mesa_egl_extension.c x11/mesa_egl_res_share.c intel/intel_dri_resource_sharing.c)
+  SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS}")
+  SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS}")
+  SET(OPTIONAL_EGL_LIBRARY "${EGL_LIBRARY}")
 else(EGL_FOUND AND MESA_SOURCE_FOUND)
-SET(OPTIONAL_EGL_LIBRARY "")
+  SET(OPTIONAL_EGL_LIBRARY "")
 endif (EGL_FOUND AND MESA_SOURCE_FOUND)
 
 if (OCLIcd_FOUND)
-set (OPENCL_SRC ${OPENCL_SRC} cl_khr_icd.c)
-SET(CMAKE_CXX_FLAGS "-DHAS_OCLIcd ${CMAKE_CXX_FLAGS}")
-SET(CMAKE_C_FLAGS "-DHAS_OCLIcd ${CMAKE_C_FLAGS}")
+  set (OPENCL_SRC ${OPENCL_SRC} cl_khr_icd.c)
+  SET(CMAKE_CXX_FLAGS "-DHAS_OCLIcd ${CMAKE_CXX_FLAGS}")
+  SET(CMAKE_C_FLAGS "-DHAS_OCLIcd ${CMAKE_C_FLAGS}")
 endif (OCLIcd_FOUND)
 
-if (DRM_INTEL_USERPTR)
-SET(CMAKE_CXX_FLAGS "-DHAS_USERPTR ${CMAKE_CXX_FLAGS}")
-SET(CMAKE_C_FLAGS "-DHAS_USERPTR ${CMAKE_C_FLAGS}")
-endif (DRM_INTEL_USERPTR)
+if (HAVE_DRM_INTEL_USERPTR)
+  SET(CMAKE_CXX_FLAGS "-DHAS_USERPTR ${CMAKE_CXX_FLAGS}")
+  SET(CMAKE_C_FLAGS "-DHAS_USERPTR ${CMAKE_C_FLAGS}")
+endif (HAVE_DRM_INTEL_USERPTR)
 
-if (DRM_INTEL_EU_TOTAL)
-SET(CMAKE_CXX_FLAGS "-DHAS_EU_TOTAL ${CMAKE_CXX_FLAGS}")
-SET(CMAKE_C_FLAGS "-DHAS_EU_TOTAL ${CMAKE_C_FLAGS}")
-endif (DRM_INTEL_EU_TOTAL)
+if (HAVE_DRM_INTEL_EU_TOTAL)
+  SET(CMAKE_CXX_FLAGS "-DHAS_EU_TOTAL ${CMAKE_CXX_FLAGS}")
+  SET(CMAKE_C_FLAGS "-DHAS_EU_TOTAL ${CMAKE_C_FLAGS}")
+endif (HAVE_DRM_INTEL_EU_TOTAL)
 
-if (DRM_INTEL_SUBSLICE_TOTAL)
-SET(CMAKE_CXX_FLAGS "-DHAS_SUBSLICE_TOTAL ${CMAKE_CXX_FLAGS}")
-SET(CMAKE_C_FLAGS "-DHAS_SUBSLICE_TOTAL ${CMAKE_C_FLAGS}")
-endif (DRM_INTEL_SUBSLICE_TOTAL)
+if (HAVE_DRM_INTEL_SUBSLICE_TOTAL)
+  SET(CMAKE_CXX_FLAGS "-DHAS_SUBSLICE_TOTAL ${CMAKE_CXX_FLAGS}")
+  SET(CMAKE_C_FLAGS "-DHAS_SUBSLICE_TOTAL ${CMAKE_C_FLAGS}")
+endif (HAVE_DRM_INTEL_SUBSLICE_TOTAL)
 
 set(GIT_SHA1 "git_sha1.h")
 add_custom_target(${GIT_SHA1} ALL
-- 
2.1.4



More information about the Beignet mailing list