summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2014-04-10 18:09:44 +0800
committerZhigang Gong <zhigang.gong@intel.com>2014-04-17 10:04:36 +0800
commitcecd52124bfd7c79108e36cae549354b16c2ef4e (patch)
tree8b2bae2b7500e393edd8640671b96bed45bb4f2a
parent94ee7a3de83c2471a09be83bc860ce3763ce73a2 (diff)
downloadbeignet-cecd52124bfd7c79108e36cae549354b16c2ef4e.tar.gz
Use pkg-config to check modules
Instead of use pre-defined path for dependent modules, e.g libdrm, libdrm_intel, etc. Use pkg-config helper for cmake instead. This makes it easy to work with developer own built version of those dependences. Also remove libGL dependence for 'gbe_bin_generator' which is not required. libutest.so still requires libGL now but might be fixed by checking real GL dependence. v2: Fix build with mesa source (92e6260) and link required EGL lib with utests too. Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com> Reviewed-by:Zhigang Gong <zhigang.gong@linux.intel.com>
-rw-r--r--CMake/FindDRM.cmake42
-rw-r--r--CMake/FindDRMIntel.cmake43
-rw-r--r--CMake/FindMesaSrc.cmake (renamed from CMake/FindEGL.cmake)35
-rw-r--r--CMake/FindXext.cmake35
-rw-r--r--CMake/FindXfixes.cmake35
-rw-r--r--CMakeLists.txt47
-rw-r--r--backend/src/CMakeLists.txt5
-rw-r--r--src/CMakeLists.txt12
-rw-r--r--utests/CMakeLists.txt10
9 files changed, 50 insertions, 214 deletions
diff --git a/CMake/FindDRM.cmake b/CMake/FindDRM.cmake
deleted file mode 100644
index a5a4ebc0..00000000
--- a/CMake/FindDRM.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# Try to find X library and include path.
-# Once done this will define
-#
-# DRM_FOUND
-# DRM_INCLUDE_PATH
-# DRM_LIBRARY
-#
-
-FIND_PATH(DRM_INCLUDE_PATH
- NAMES
- drm.h
- PATHS
- ${CMAKE_INCLUDE_PATH}/include/libdrm/
- ~/include/libdrm/
- /usr/include/libdrm/
- /usr/local/include/libdrm/
- /sw/include/libdrm/
- /opt/local/include/libdrm/
- DOC "The directory where drm.h resides")
-FIND_LIBRARY(DRM_LIBRARY
- NAMES DRM drm
- PATHS
- ${CMAKE_LIBRARY_PATH}/lib/
- ~/lib/
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- DOC "The DRM library")
-
-IF(DRM_INCLUDE_PATH)
- INCLUDE_DIRECTORIES(${DRM_INCLUDE_PATH})
- SET(DRM_FOUND 1 CACHE STRING "Set to 1 if DRM is found, 0 otherwise")
-ELSE(DRM_INCLUDE_PATH)
- SET(DRM_FOUND 0 CACHE STRING "Set to 1 if DRM is found, 0 otherwise")
-ENDIF(DRM_INCLUDE_PATH)
-
-MARK_AS_ADVANCED(DRM_FOUND)
-
diff --git a/CMake/FindDRMIntel.cmake b/CMake/FindDRMIntel.cmake
deleted file mode 100644
index 0aab1c79..00000000
--- a/CMake/FindDRMIntel.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-#
-# Try to find X library and include path.
-# Once done this will define
-#
-# DRM_INTEL_FOUND
-# DRM_INTEL_INCLUDE_PATH
-#
-
-FIND_PATH(DRM_INTEL_INCLUDE_PATH
- NAMES
- intel_bufmgr.h
- PATHS
- ${CMAKE_INCLUDE_PATH}/include/libdrm/
- ~/include/libdrm/
- /usr/include/libdrm/
- /usr/local/include/libdrm/
- /sw/include/libdrm/
- /opt/local/include/libdrm/
- DOC "The directory where intel_bufmgr.h resides")
-
-FIND_LIBRARY(DRM_INTEL_LIBRARY
- NAMES DRM_INTEL drm_intel
- PATHS
- ${CMAKE_LIBRARY_PATH}/lib/
- ~/lib/
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- /usr/lib/i386-linux-gnu/
- DOC "The DRM_INTEL library")
-
-IF(DRM_INTEL_INCLUDE_PATH)
- INCLUDE_DIRECTORIES(${DRM_INTEL_INCLUDE_PATH})
- SET(DRM_INTEL_FOUND 1 CACHE STRING "Set to 1 if DRM_INTEL is found, 0 otherwise")
-ELSE(DRM_INTEL_INCLUDE_PATH)
- SET(DRM_INTEL_FOUND 0 CACHE STRING "Set to 1 if DRM_INTEL is found, 0 otherwise")
-ENDIF(DRM_INTEL_INCLUDE_PATH)
-
-MARK_AS_ADVANCED(DRM_INTEL_FOUND)
-
diff --git a/CMake/FindEGL.cmake b/CMake/FindMesaSrc.cmake
index 597b4a57..c1d4fc62 100644
--- a/CMake/FindEGL.cmake
+++ b/CMake/FindMesaSrc.cmake
@@ -1,38 +1,11 @@
#
-# Try to find EGL library and include path.
+# Try to find mesa source code
# Once done this will define
#
-# EGL_FOUND
-# EGL_INCLUDE_PATH
-# EGL_LIBRARY
+# MESA_SOURCE_FOUND
+# MESA_SOURCE_INCLUDES
#
-FIND_PATH(EGL_INCLUDE_PATH EGL/egl.h
- ~/include/
- /usr/include/
- /usr/local/include/
- /sw/include/
- /opt/local/include/
- DOC "The directory where gen/program.h resides")
-FIND_LIBRARY(EGL_LIBRARY
- NAMES EGL egl
- PATHS
- ~/lib/
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- DOC "The EGL library")
-
-IF(EGL_INCLUDE_PATH)
- INCLUDE_DIRECTORIES(${EGL_INCLUDE_PATH})
- SET(EGL_FOUND 1 CACHE STRING "Set to 1 if EGL is found, 0 otherwise")
-ELSE(EGL_INCLUDE_PATH)
- SET(EGL_FOUND 0 CACHE STRING "Set to 1 if EGL is found, 0 otherwise")
-ENDIF(EGL_INCLUDE_PATH)
-
# Find mesa source code.
FIND_PATH(MESA_SOURCE_PREFIX src/mesa/main/texobj.c
$ENV{MESA_SOURCE_DIR}
@@ -51,5 +24,3 @@ SET(MESA_SOURCE_FOUND 1 CACHE STRING "Set to 1 if mesa source code is found, 0 o
ELSE(MESA_SOURCE_PREFIX)
SET(MESA_SOURCE_FOUND 0 CACHE STRING "Set to 1 if mesa source code is found, 0 otherwise")
ENDIF(MESA_SOURCE_PREFIX)
-
-MARK_AS_ADVANCED(EGL_FOUND)
diff --git a/CMake/FindXext.cmake b/CMake/FindXext.cmake
deleted file mode 100644
index 5bbd7196..00000000
--- a/CMake/FindXext.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Try to find Xext library path.
-# Once done this will define
-#
-# XEXT_FOUND
-# XEXT_LIBRARY
-#
-
-FIND_PATH(XEXT_INCLUDE_PATH X11/extensions/Xext.h
- /usr/include
- /usr/local/include
- /sw/include
- /opt/local/include
- DOC "The directory where Xext.h resides")
-
-FIND_LIBRARY(XEXT_LIBRARY
- NAMES XEXT Xext
- PATHS
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- DOC "The XEXT library")
-
-IF(XEXT_INCLUDE_PATH)
- INCLUDE_DIRECTORIES(${XEXT_INCLUDE_PATH})
- SET(XEXT_FOUND 1 CACHE STRING "Set to 1 if XEXT is found, 0 otherwise")
-ELSE(XEXT_INCLUDE_PATH)
- SET(XEXT_FOUND 0 CACHE STRING "Set to 1 if XEXT is found, 0 otherwise")
-ENDIF(XEXT_INCLUDE_PATH)
-
-MARK_AS_ADVANCED(XEXT_FOUND)
-
diff --git a/CMake/FindXfixes.cmake b/CMake/FindXfixes.cmake
deleted file mode 100644
index 47259e1b..00000000
--- a/CMake/FindXfixes.cmake
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Try to find Xfixes library path.
-# Once done this will define
-#
-# XFIXES_FOUND
-# XFIXES_LIBRARY
-#
-
-FIND_PATH(XFIXES_INCLUDE_PATH X11/extensions/Xfixes.h
- /usr/include
- /usr/local/include
- /sw/include
- /opt/local/include
- DOC "The directory where Xfixes.h resides")
-
-FIND_LIBRARY(XFIXES_LIBRARY
- NAMES XFIXES Xfixes
- PATHS
- /usr/lib64
- /usr/lib
- /usr/local/lib64
- /usr/local/lib
- /sw/lib
- /opt/local/lib
- DOC "The XFIXES library")
-
-IF(XFIXES_INCLUDE_PATH)
- INCLUDE_DIRECTORIES(${XFIXES_INCLUDE_PATH})
- SET(XFIXES_FOUND 1 CACHE STRING "Set to 1 if XFIXES is found, 0 otherwise")
-ELSE(XFIXES_INCLUDE_PATH)
- SET(XFIXES_FOUND 0 CACHE STRING "Set to 1 if XFIXES is found, 0 otherwise")
-ENDIF(XFIXES_INCLUDE_PATH)
-
-MARK_AS_ADVANCED(XFIXES_FOUND)
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ed27b52..60e63587 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,6 +21,8 @@ configure_file (
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
+INCLUDE (FindPkgConfig)
+
SET(CMAKE_VERBOSE_MAKEFILE "false")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")
if (NOT LIB_INSTALL_DIR)
@@ -80,50 +82,65 @@ ELSE(X11_FOUND)
ENDIF(X11_FOUND)
# DRM
-Find_Package(DRM)
+pkg_check_modules(DRM REQUIRED libdrm)
IF(DRM_FOUND)
- MESSAGE(STATUS "Looking for DRM - found")
+ MESSAGE(STATUS "Looking for DRM - found at ${DRM_PREFIX}")
+ INCLUDE_DIRECTORIES(${DRM_INCLUDE_DIRS})
ELSE(DRM_FOUND)
MESSAGE(STATUS "Looking for DRM - not found")
ENDIF(DRM_FOUND)
-# OpenGL
-Find_Package(OpenGL)
-# Threads
-Find_Package(Threads)
# DRM Intel
-Find_Package(DRMIntel)
+pkg_check_modules(DRM_INTEL REQUIRED libdrm_intel)
IF(DRM_INTEL_FOUND)
- MESSAGE(STATUS "Looking for DRM Intel - found")
+ INCLUDE_DIRECTORIES(${DRM_INTEL_INCLUDE_DIRS})
+ MESSAGE(STATUS "Looking for DRM Intel - found at ${DRM_INTEL_PREFIX}")
ELSE(DRM_INTEL_FOUND)
MESSAGE(STATUS "Looking for DRM Intel - not found")
ENDIF(DRM_INTEL_FOUND)
+# OpenGL (not use cmake helper)
+pkg_check_modules(OPENGL REQUIRED gl)
+IF(OPENGL_FOUND)
+ INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIRS})
+ MESSAGE(STATUS "Looking for OpenGL - found at ${OPENGL_PREFIX}")
+ELSE(OPENGL_FOUND)
+ MESSAGE(STATUS "Looking for OpenGL - not found")
+ENDIF(OPENGL_FOUND)
+
+
+# Threads
+Find_Package(Threads)
+
# Xext
-Find_Package(Xext)
+pkg_check_modules(XEXT REQUIRED xext)
IF(XEXT_FOUND)
- MESSAGE(STATUS "Looking for Xext - found")
+ INCLUDE_DIRECTORIES(${XEXT_INCLUDE_DIRS})
+ MESSAGE(STATUS "Looking for Xext - found at ${XEXT_PREFIX}")
ELSE(XEXT_FOUND)
MESSAGE(STATUS "Looking for Xext - not found")
ENDIF(XEXT_FOUND)
# Xfixes
-Find_Package(Xfixes)
+pkg_check_modules(XFIXES REQUIRED xfixes)
IF(XFIXES_FOUND)
- MESSAGE(STATUS "Looking for Xfixes - found")
+ INCLUDE_DIRECTORIES(${XFIXES_INCLUDE_DIRS})
+ MESSAGE(STATUS "Looking for Xfixes - found at ${XFIXES_PREFIX}")
ELSE(XFIXES_FOUND)
MESSAGE(STATUS "Looking for Xfixes - not found")
ENDIF(XFIXES_FOUND)
-Find_Package(EGL)
+pkg_check_modules(EGL egl)
IF(EGL_FOUND)
- MESSAGE(STATUS "Looking for EGL - found")
+ MESSAGE(STATUS "Looking for EGL - found at ${EGL_PREFIX}")
ELSE(EGL_FOUND)
MESSAGE(STATUS "Looking for EGL - not found")
ENDIF(EGL_FOUND)
+# cl_khr_gl_sharing requires to build with mesa source
+Find_Package(MesaSrc)
IF(MESA_SOURCE_FOUND)
- MESSAGE(STATUS "Looking for mesa source code - found")
+ MESSAGE(STATUS "Looking for mesa source code - found at ${MESA_SOURCE_PREFIX}")
ELSE(MESA_SOURCE_FOUND)
MESSAGE(STATUS "Looking for mesa source code - not found, cl_khr_gl_sharing will be disabled.")
ENDIF(MESA_SOURCE_FOUND)
diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt
index d6f2d3c6..420e50d3 100644
--- a/backend/src/CMakeLists.txt
+++ b/backend/src/CMakeLists.txt
@@ -180,9 +180,8 @@ ll_add_library (${pcm_lib} pcm_sources)
ADD_DEPENDENCIES (gbe pch_object ${pcm_lib})
target_link_libraries(
gbe
- ${DRM_INTEL_LIBRARY}
- ${DRM_LIBRARY}
- ${OPENGL_LIBRARIES}
+ ${DRM_INTEL_LIBRARIES}
+ ${DRM_LIBRARIES}
${CLANG_LIBRARIES}
${LLVM_MODULE_LIBS}
${LLVM_SYSTEM_LIBS}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d690d9ad..8164a44a 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,6 @@
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
- ${DRM_INCLUDE_PATH}
- ${DRM_INCLUDE_PATH}/../
+ ${DRM_INCLUDE_DIRS}
+ ${DRM_INCLUDE_DIRS}/../
${CMAKE_CURRENT_SOURCE_DIR}/../backend/src/backend/
${CMAKE_CURRENT_SOURCE_DIR}/../include
${MESA_SOURCE_INCLUDES})
@@ -75,10 +75,10 @@ target_link_libraries(
cl
gbe
${XLIB_LIBRARY}
- ${XEXT_LIBRARY}
- ${XFIXES_LIBRARY}
- ${DRM_INTEL_LIBRARY}
- ${DRM_LIBRARY}
+ ${XEXT_LIBRARIES}
+ ${XFIXES_LIBRARIES}
+ ${DRM_INTEL_LIBRARIES}
+ ${DRM_LIBRARIES}
${OPENGL_LIBRARIES}
${OPTIONAL_EGL_LIBRARY})
install (TARGETS cl LIBRARY DESTINATION ${LIB_INSTALL_DIR}/beignet)
diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt
index 9ca9c8be..aa7efa68 100644
--- a/utests/CMakeLists.txt
+++ b/utests/CMakeLists.txt
@@ -18,7 +18,8 @@ configure_file (
"setenv.sh"
)
-link_directories (${LLVM_LIBRARY_DIR})
+#XXX only need GL if required
+link_directories (${LLVM_LIBRARY_DIR} ${OPENGL_LIBDIR})
set (utests_sources
utest_error.c
compiler_basic_arithmetic.cpp
@@ -202,11 +203,14 @@ if (EGL_FOUND AND MESA_SOURCE_FOUND)
SET(utests_sources ${utests_sources} compiler_fill_gl_image.cpp)
SET(CMAKE_CXX_FLAGS "-DHAS_EGL ${CMAKE_CXX_FLAGS} ${DEF_OCL_PCH_PCM_PATH}")
SET(CMAKE_C_FLAGS "-DHAS_EGL ${CMAKE_C_FLAGS} ${DEF_OCL_PCH_PCM_PATH}")
-endif (EGL_FOUND AND MESA_SOURCE_FOUND)
+SET(UTESTS_REQUIRED_EGL_LIB ${EGL_LIBRARIES})
+else()
+SET(UTESTS_REQUIRED_EGL_LIB "")
+endif()
ADD_LIBRARY(utests SHARED ${ADDMATHFUNC} ${utests_sources})
-TARGET_LINK_LIBRARIES(utests cl m ${OPENGL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+TARGET_LINK_LIBRARIES(utests cl m ${OPENGL_LIBRARIES} ${UTESTS_REQUIRED_EGL_LIB} ${CMAKE_THREAD_LIBS_INIT})
ADD_EXECUTABLE(utest_run utest_run.cpp)
TARGET_LINK_LIBRARIES(utest_run utests)