[Beignet] [PATCH] buildsys: Use CMRT_LIBDIR instead of CMRT_LIBRARY_DIRS

Guo, Yejun yejun.guo at intel.com
Sun Oct 9 02:34:35 UTC 2016


thanks Armin, the patch looks good to me.

could you also send a patch to fix CMRT_INCLUDE_DIRS? thanks.


thanks
yejun

-----Original Message-----
From: Armin K. [mailto:krejzi at email.com] 
Sent: Saturday, October 08, 2016 4:50 PM
To: Guo, Yejun; beignet at lists.freedesktop.org
Subject: Re: [Beignet] [PATCH] buildsys: Use CMRT_LIBDIR instead of CMRT_LIBRARY_DIRS

On 8.10.2016 4:18, Guo, Yejun wrote:
> Hi Armin,
>
> thanks for your patch.
>
> We use pkg_check_modules(CMRT libcmrt) in path_of_beignet/CMakeList.txt Line 173 to detect libcmrt.  CMRT_INCLUDE_DIRS and CMRT_LIBRARY_DIRS are the expected macro to use, see https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html or https://cmake.org/cmake/help/v2.8.12/cmake.html. Could you explain a bit more of your environment? thanks.
>
> btw, do you use the feature to "make Beignet as intermedia layer of CMRT"? Want to know if any real cases from the community.
>
> thanks
> yejun
>

Hi Yejun,

As noted in the patch reply, CMRT_LIBRARY_DIRS is empty here.

Per cmake docs:

"<XPREFIX>_LIBRARY_DIRS   ... the paths of the libraries (w/o the '-L')"

There is no "-L..." in Libs: section of the libcmrt.pc file, because the file is installed in /usr/lib/pkgconfig, and autotools/pkgconfig will strip /usr/lib from library paths and /usr/include from include paths (per pkg-config default configuration).

CMRT_LIBDIR is however always set, as it reads libdir variable from the .pc file, and that one is expected to be always set.

And I don't use cmrt feature at all, I just happened to have libcmrt installed because I have intel-hybrid-driver for Skylake VP9 hybrid decoder.

Without this patch, the utest testing the cmrt code will fail. See also:

https://bugs.freedesktop.org/show_bug.cgi?id=94636

> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf 
> Of Armin K
> Sent: Wednesday, October 05, 2016 10:33 PM
> To: beignet at lists.freedesktop.org
> Cc: Armin K
> Subject: [Beignet] [PATCH] buildsys: Use CMRT_LIBDIR instead of 
> CMRT_LIBRARY_DIRS
>
> CMRT_LIBRARY_DIRS doesn't include any library paths when the library 
> is installed system-wide, such as /usr.
>
> Also dlopen versioned library, as distros tend to split non-versioned 
> sonames into -devel packages.
>
> Signed-off-by: Armin K <krejzi at email.com>
> ---
>  src/CMakeLists.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 
> a002865..82be7ff 100644
> --- a/src/CMakeLists.txt
> +++ b/src/CMakeLists.txt
> @@ -103,7 +103,7 @@ endif (X11_FOUND)
>
>  if (CMRT_FOUND)
>    set(CMAKE_CXX_FLAGS "-DHAS_CMRT ${CMAKE_CXX_FLAGS}")
> -  set(CMAKE_CXX_FLAGS "-DCMRT_PATH=${CMRT_LIBRARY_DIRS}/libcmrt.so 
> ${CMAKE_CXX_FLAGS}")
> +  set(CMAKE_CXX_FLAGS "-DCMRT_PATH=${CMRT_LIBDIR}/libcmrt.so.1 
> + ${CMAKE_CXX_FLAGS}")
>    set(CMAKE_C_FLAGS "-DHAS_CMRT ${CMAKE_C_FLAGS}")
>    set(OPENCL_SRC ${OPENCL_SRC} cl_cmrt.cpp)  endif (CMRT_FOUND)
>


More information about the Beignet mailing list