[Beignet] [PATCH] Separate the building of CL and utest
Zhigang Gong
zhigang.gong at gmail.com
Mon Aug 5 01:28:10 PDT 2013
Junyan,
Is this the first patch of a patchset to make the utest building independent
with Beignet and thus can make it easily be built with other OpenCL library?
If so, could you send out a complete patchset to achieve the above goal. It
may be more convenient to test/review.
Thanks.
On Wed, Jul 31, 2013 at 06:40:10PM +0800, junyan.he at inbox.com wrote:
> From: Junyan He <junyan.he at linux.intel.com>
>
> Because the utest grows bigger, to save the building time, we
> separate the building into two phrases.
> The CMakeList.txt in top dir will just build the libCL.so, and
> the CMakeList.txt in utests is responsible for building the utest.
> One shortcoming is: because the CL and utest built separated,
> the env variable can not be shared. So if in out-source building
> mode, you may should install the libCL to the system dir before
> the utest building.
>
> Signed-off-by: Junyan He <junyan.he at linux.intel.com>
> ---
> CMake/FindOpenCL.cmake | 34 +++++++++++++++++++++++++++++++
> CMakeLists.txt | 2 +-
> utests/CMakeLists.txt | 52 +++++++++++++++++++++++++++++++++++++++++++++++-
> 3 files changed, 86 insertions(+), 2 deletions(-)
> create mode 100644 CMake/FindOpenCL.cmake
>
> diff --git a/CMake/FindOpenCL.cmake b/CMake/FindOpenCL.cmake
> new file mode 100644
> index 0000000..8923c19
> --- /dev/null
> +++ b/CMake/FindOpenCL.cmake
> @@ -0,0 +1,34 @@
> +# Try to find OpenCL library and include path.
> +# This logic here may be seperated into a .cmake file and
> +# install to the sys's share with OpenCL lib build and install
> +FIND_PATH(OPENCL_INCLUDE_PATH CL/cl.h
> + ${CL_INC_PATH}
> + ~/include/
> + /usr/include/
> + /usr/local/include/
> + /sw/include/
> + /opt/local/include/
> + DOC "The directory where OpenCL headerfile resides")
> +
> +FIND_LIBRARY(OPENCL_LIBRARIES
> + NAMES cl CL
> + PATHS
> + ${CL_LIB_BUILD_PATH}
> + ~/lib/
> + /usr/lib64
> + /usr/lib
> + /usr/local/lib64
> + /usr/local/lib
> + /sw/lib
> + /opt/local/lib
> + DOC "The OpenCL library")
> +
> +# If found, add the header path
> +IF (OPENCL_INCLUDE_PATH)
> + SET (OPENCL_FOUND 1 CACHE STRING "Set to 1 if CL is found, 0 otherwise")
> +ELSE (OPENCL_INCLUDE_PATH)
> + SET (OPENCL_FOUND 0 CACHE STRING "Set to 1 if CL is found, 0 otherwise")
> +ENDIF (OPENCL_INCLUDE_PATH)
> +
> +MARK_AS_ADVANCED(OPENCL_FOUND)
> +
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index eb56567..aba1696 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -144,5 +144,5 @@ Find_Package(PythonInterp)
> ADD_SUBDIRECTORY(include)
> ADD_SUBDIRECTORY(backend)
> ADD_SUBDIRECTORY(src)
> -ADD_SUBDIRECTORY(utests)
> +#ADD_SUBDIRECTORY(utests)
>
> diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt
> index 5cd20c3..d3579b3 100644
> --- a/utests/CMakeLists.txt
> +++ b/utests/CMakeLists.txt
> @@ -1,3 +1,53 @@
> +#############################################################################
> +# INTEL CORPORATION PROPRIETARY INFORMATION #
> +# This software is supplied under the terms of a license agreement or #
> +# nondisclosure agreement with Intel Corporation and may not be copied #
> +# or disclosed except in accordance with the terms of that agreement. #
> +# Copyright (C) 2009 Intel Corporation. All Rights Reserved. #
> +#############################################################################
> +
> +CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
> +PROJECT(OCL_TEST)
> +
> +SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/../CMake/")
> +
> +#Just assume the lib cl is built using in-source mode, if built in out-source mode,
> +#you must make install before building the utest
> +SET(CL_LIB_BUILD_PATH "${CMAKE_SOURCE_DIR}/../src/")
> +SET(CL_INC_PATH "${CMAKE_SOURCE_DIR}/../include/")
> +
> +MESSAGE(STATUS "SOURCE dir is " ${OCL_TEST_SOURCE_DIR})
> +MESSAGE(STATUS "BINARY dir is " ${OCL_TEST_BINARY_DIR})
> +
> +SET(CMAKE_VERBOSE_MAKEFILE "false")
> +
> +# Force Release with debug info
> +IF (NOT CMAKE_BUILD_TYPE)
> + SET (CMAKE_BUILD_TYPE RelWithDebInfo)
> +ENDIF (NOT CMAKE_BUILD_TYPE)
> +
> +SET (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "assure config" FORCE)
> +MESSAGE(STATUS "Building mode: " ${CMAKE_BUILD_TYPE})
> +
> +# Set the c and c++ flags
> +SET(CMAKE_CXX_FLAGS_DEBUGO0 "-O0 -g")
> +SET(CMAKE_C_FLAGS_DEBUGO0 "-O0 -g")
> +SET(CMAKE_CXX_FLAGS "-Wall -Wno-invalid-offsetof -mfpmath=sse --no-rtti -Wcast-align -std=c++0x -msse2 -msse3 -mssse3 -msse4.1 ")
> +SET(CMAKE_C_FLAGS "-Wall -mfpmath=sse -msse2 -Wcast-align -msse2 -msse3 -mssse3 -msse4.1 ")
> +
> +# OpenGL lib
> +Find_Package(OpenGL)
> +# OpenCL lib
> +
> +Find_Package(OpenCL)
> +
> +IF(OPENCL_FOUND)
> + INCLUDE_DIRECTORIES(${OPENCL_INCLUDE_PATH})
> +ELSE(OPENCL_FOUND)
> + MESSAGE(FATAL_ERROR "Can not find the OpenCL")
> +ENDIF(OPENCL_FOUND)
> +
> +
> INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
> ${CMAKE_CURRENT_SOURCE_DIR}/../include)
>
> @@ -132,7 +182,7 @@ endif (EGL_FOUND)
>
> ADD_LIBRARY(utests SHARED ${utests_sources})
>
> -TARGET_LINK_LIBRARIES(utests cl m ${OPENGL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
> +TARGET_LINK_LIBRARIES(utests ${OPENCL_LIBRARIES} m ${OPENGL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
>
> ADD_EXECUTABLE(utest_run utest_run.cpp)
> TARGET_LINK_LIBRARIES(utest_run utests)
> --
> 1.7.9.5
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list