refactoring dependencies lookup on Linux

Dependending on Linux Distribution location of pkgconfig may change and
be under lib/, lib64/ or other subfolder. Let's use GNUinstallDirs to
pick correct location when checking for prebuilts

Change-Id: Ic2323e2408eae3d91f0af71cb04e268bcb43bd46
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
This commit is contained in:
Artur Harasimiuk
2019-11-14 11:18:25 +01:00
committed by sys_ocldev
parent 9d705e7905
commit bb1cdcaa30
2 changed files with 40 additions and 20 deletions

View File

@ -262,24 +262,34 @@ if(NOT IGC__IGC_TARGETS)
if(UNIX)
# on Unix-like use pkg-config
find_package(PkgConfig)
if(DEFINED IGC_DIR AND IS_DIRECTORY "${IGC_DIR}/lib/pkgconfig/")
if(DEFINED IGC_DIR)
if(IS_DIRECTORY "${IGC_DIR}/lib/pkgconfig/")
set(__tmp_LIBDIR "lib")
elseif(IS_DIRECTORY "${IGC_DIR}/${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
set(__tmp_LIBDIR ${CMAKE_INSTALL_LIBDIR})
endif()
endif()
if(DEFINED __tmp_LIBDIR)
set(OLD_PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} "${IGC_DIR}/lib/pkgconfig/")
set(ENV{PKG_CONFIG_PATH} "${IGC_DIR}/${__tmp_LIBDIR}/pkgconfig")
endif()
pkg_check_modules(IGDRCL__IGC igc-opencl)
if(DEFINED IGC_DIR AND IS_DIRECTORY "${IGC_DIR}/lib/pkgconfig/")
if(DEFINED __tmp_LIBDIR)
set(ENV{PKG_CONFIG_PATH} ${OLD_PKG_CONFIG_PATH})
set(IGDRCL__IGC_LIBRARY_PATH "${IGC_DIR}/lib/")
set(IGDRCL__IGC_LIBRARY_PATH "${IGC_DIR}/${__tmp_LIBDIR}/")
endif()
if(IGDRCL__IGC_FOUND)
if(DEFINED IGC_DIR AND IS_DIRECTORY "${IGC_DIR}/lib/pkgconfig/")
if(DEFINED IGC_DIR AND IS_DIRECTORY "${IGC_DIR}/${__tmp_LIBDIR}/pkgconfig/")
string(REPLACE "${IGDRCL__IGC_INCLUDEDIR}" "${IGC_DIR}/include/igc" IGDRCL__IGC_INCLUDE_DIRS "${IGDRCL__IGC_INCLUDE_DIRS}")
endif()
set(IGDRCL__IGC_INCLUDE_DIR ${IGDRCL__IGC_INCLUDE_DIRS})
message(STATUS "IGC include dirs: ${IGDRCL__IGC_INCLUDE_DIR}")
endif()
if(DEFINED __tmp_LIBDIR)
unset(__tmp_LIBDIR)
endif()
endif()
if(IGDRCL__IGC_FOUND)
@ -365,30 +375,38 @@ if(NOT DEFINED GMMUMD_LIB_NAME)
set(IGDRCL__GMM_LIBRARY_PATH "$<TARGET_FILE_DIR:${GMMUMD_LIB_NAME}>")
endif()
else()
if(DEFINED GMM_SOURCE_DIR)
get_filename_component(GMM_SOURCE_DIR "${GMM_SOURCE_DIR}" ABSOLUTE)
if(DEFINED GMM_DIR)
get_filename_component(GMM_DIR "${GMM_DIR}" ABSOLUTE)
else()
get_filename_component(GMM_SOURCE_DIR_tmp "${NEO_SOURCE_DIR}/../gmmlib" ABSOLUTE)
if(IS_DIRECTORY "${GMM_SOURCE_DIR_tmp}")
set(GMM_SOURCE_DIR "${GMM_SOURCE_DIR_tmp}")
get_filename_component(GMM_DIR_tmp "${NEO_SOURCE_DIR}/../gmmlib" ABSOLUTE)
if(IS_DIRECTORY "${GMM_DIR_tmp}")
set(GMM_DIR "${GMM_DIR_tmp}")
endif()
endif()
if(UNIX)
if(DEFINED GMM_DIR)
if(IS_DIRECTORY "${GMM_DIR}/lib/pkgconfig/")
set(__tmp_LIBDIR "lib")
elseif(IS_DIRECTORY "${GMM_DIR}/${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
set(__tmp_LIBDIR ${CMAKE_INSTALL_LIBDIR})
endif()
endif()
find_package(PkgConfig)
if(DEFINED GMM_SOURCE_DIR AND IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/")
if(DEFINED __tmp_LIBDIR)
set(OLD_PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} "${GMM_SOURCE_DIR}/lib/pkgconfig/")
set(ENV{PKG_CONFIG_PATH} "${GMM_DIR}/${__tmp_LIBDIR}/pkgconfig/")
endif()
pkg_check_modules(IGDRCL__GMM igdgmm)
if(DEFINED GMM_SOURCE_DIR AND IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/")
if(DEFINED __tmp_LIBDIR)
set(ENV{PKG_CONFIG_PATH} ${OLD_PKG_CONFIG_PATH})
endif()
if(IGDRCL__GMM_FOUND)
if(DEFINED GMM_SOURCE_DIR AND IS_DIRECTORY "${GMM_SOURCE_DIR}/lib/pkgconfig/")
string(REPLACE "${IGDRCL__GMM_INCLUDEDIR}" "${GMM_SOURCE_DIR}/include/igdgmm" IGDRCL__GMM_INCLUDE_DIRS "${IGDRCL__GMM_INCLUDE_DIRS}")
string(REPLACE "${IGDRCL__GMM_LIBDIR}" "${GMM_SOURCE_DIR}/lib" IGDRCL__GMM_LIBDIR "${IGDRCL__GMM_LIBDIR}")
if(DEFINED __tmp_LIBDIR)
string(REPLACE "${IGDRCL__GMM_INCLUDEDIR}" "${GMM_DIR}/include/igdgmm" IGDRCL__GMM_INCLUDE_DIRS "${IGDRCL__GMM_INCLUDE_DIRS}")
string(REPLACE "${IGDRCL__GMM_LIBDIR}" "${GMM_DIR}/${__tmp_LIBDIR}" IGDRCL__GMM_LIBDIR "${IGDRCL__GMM_LIBDIR}")
set(IGDRCL__GMM_LIBRARY_PATH "${IGDRCL__GMM_LIBDIR}")
endif()
@ -400,10 +418,13 @@ if(NOT DEFINED GMMUMD_LIB_NAME)
else()
message(FATAL_ERROR "GmmLib not found!")
endif()
if(DEFINED __tmp_LIBDIR)
unset(__tmp_LIBDIR)
endif()
else()
if(EXISTS "${GMM_SOURCE_DIR}/CMakeLists.txt")
message(STATUS "GmmLib source dir is: ${GMM_SOURCE_DIR}")
add_subdirectory_unique("${GMM_SOURCE_DIR}" "${NEO_BUILD_DIR}/gmmlib")
if(EXISTS "${GMM_DIR}/CMakeLists.txt")
message(STATUS "GmmLib source dir is: ${GMM_DIR}")
add_subdirectory_unique("${GMM_DIR}" "${NEO_BUILD_DIR}/gmmlib")
if(NOT DEFINED GMMUMD_LIB_NAME)
set(GMMUMD_LIB_NAME "igfx_gmmumd_dll")