From 2e946771649c47525fcbbea057e2a2c1072e173e Mon Sep 17 00:00:00 2001 From: "Nabiullin, Oleg" Date: Tue, 30 Oct 2018 02:14:48 +0300 Subject: [PATCH] Fix build-time Dispatcher discovery Issue: MDP-51381 Test: build (cherry picked from commit 308d8143563d679a9e00f2abc2bad7c2365b2f24) --- CMakeLists.txt | 9 +++++---- builder/FindMFX.cmake | 11 ----------- builder/FindPackages.cmake | 6 +++++- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3dbeda24b0..10346c4247 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,6 +88,11 @@ include( ${BUILDER_ROOT}/FindITT.cmake ) include( ${BUILDER_ROOT}/FindGTest.cmake ) include( ${BUILDER_ROOT}/ConfTargets.cmake ) +# should prepend others to define target mfx +if (BUILD_DISPATCHER) + add_subdirectory(api/mfx_dispatch/linux) +endif() + if (BUILD_TOOLS) add_subdirectory(${CMAKE_HOME_DIRECTORY}/tools) endif() @@ -100,10 +105,6 @@ if (BUILD_RUNTIME) add_subdirectory(${CMAKE_HOME_DIRECTORY}/_studio) endif() -if (BUILD_DISPATCHER) - add_subdirectory(api/mfx_dispatch/linux) -endif() - create_plugins_cfg(${CMAKE_BINARY_DIR}) message("") diff --git a/builder/FindMFX.cmake b/builder/FindMFX.cmake index d680e1c5fc..7a54a98501 100644 --- a/builder/FindMFX.cmake +++ b/builder/FindMFX.cmake @@ -39,18 +39,12 @@ else() endif() find_path( MFX_INCLUDE mfxdefs.h PATHS ${MFX_API_HOME}/include ) -find_library( MFX_LIBRARY libmfx.a PATHS ${MFX_API_HOME}/lib PATH_SUFFIXES ${os_arch} ) if( NOT MFX_INCLUDE MATCHES NOTFOUND ) include_directories( ${MFX_API_HOME}/mediasdk_structures ) include_directories( ${MFX_INCLUDE} ) endif() -if( NOT MFX_LIBRARY MATCHES NOTFOUND ) - get_filename_component( MFX_LIBRARY_PATH ${MFX_LIBRARY} PATH ) - link_directories( ${MFX_LIBRARY_PATH} ) -endif() - if( NOT MFX_INCLUDE MATCHES NOTFOUND ) set( MFX_FOUND TRUE ) include_directories( ${MFX_INCLUDE} ) @@ -62,11 +56,6 @@ else() message( STATUS "Intel(R) Media SDK was found here $ENV{MFX_HOME}") endif() -if( NOT MFX_LIBRARY MATCHES NOTFOUND ) - get_filename_component(MFX_LIBRARY_PATH ${MFX_LIBRARY} PATH ) - link_directories( ${MFX_LIBRARY_PATH} ) -endif() - # Potential source of confusion here. Environment $MFX_VERSION translates to product name (strings libmfxhw64.so | grep mediasdk), # but macro definition MFX_VERSION should contain API version i.e. 1025 for API 1.25 if( NOT DEFINED API OR API STREQUAL "master") diff --git a/builder/FindPackages.cmake b/builder/FindPackages.cmake index 36d96a10cb..7e36ae2df0 100644 --- a/builder/FindPackages.cmake +++ b/builder/FindPackages.cmake @@ -145,7 +145,10 @@ function(configure_target target cflags libdirs) endfunction() function(configure_libmfx_target target) - configure_target(${ARGV0} "${LIBMFX_CFLAGS}" "${LIBMFX_LIBRARY_DIRS}") + # prefer local Dispatcher sources to preinstalled + if (NOT TARGET mfx) + configure_target(${ARGV0} "${PKG_MFX_CFLAGS}" "${PKG_MFX_LIBRARY_DIRS}") + endif() set(SCOPE_CFLAGS ${SCOPE_CFLAGS} PARENT_SCOPE) set(SCOPE_LINKFLAGS "${SCOPE_LINKFLAGS} -Wl,--default-symver" PARENT_SCOPE) @@ -488,6 +491,7 @@ if( Linux ) # optional: pkg_check_modules( PKG_X11 x11 ) pkg_check_modules( PKG_LIBVA_X11 libva-x11>=0.33 ) + pkg_check_modules( PKG_MFX libmfx>=1.28 ) if ( PKG_X11_FOUND AND PKG_LIBVA_X11_FOUND ) set( ENABLE_X11 true )