[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