extend Metrics Discovery/Library detection

By default, use Metrics headers according to manifest.
If not available, use those from third_party as before.


Related-To: NEO-5615
Signed-off-by: Grzegorz Choinski <grzegorz.choinski@intel.com>
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
This commit is contained in:
Grzegorz Choinski
2021-10-22 15:43:51 +00:00
committed by Compute-Runtime-Automation
parent 1f9f001599
commit f663c509fe
2 changed files with 82 additions and 18 deletions

View File

@ -333,24 +333,6 @@ else()
endif()
endif()
# Metrics Library
get_filename_component(METRICS_LIBRARY_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party${BRANCH_DIR_SUFFIX}metrics_library" ABSOLUTE)
if(IS_DIRECTORY ${METRICS_LIBRARY_HEADERS_DIR})
message(STATUS "Metrics Library dir: ${METRICS_LIBRARY_HEADERS_DIR}")
include_directories(${NEO_SOURCE_DIR}/third_party${BRANCH_DIR_SUFFIX}metrics_library)
else()
message(FATAL_ERROR "Metrics Library headers not available!")
endif()
# Metrics Discovery
get_filename_component(METRICS_DISCOVERY_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party${BRANCH_DIR_SUFFIX}metrics_discovery" ABSOLUTE)
if(IS_DIRECTORY ${METRICS_DISCOVERY_HEADERS_DIR})
message(STATUS "Metrics Discovery dir: ${METRICS_DISCOVERY_HEADERS_DIR}")
include_directories(${NEO_SOURCE_DIR}/third_party${BRANCH_DIR_SUFFIX}metrics_discovery)
else()
message(FATAL_ERROR "Metrics Discovery headers not available!")
endif()
if(NOT DEFINED KHRONOS_HEADERS_DIR)
get_filename_component(DIR_tmp "${CMAKE_CURRENT_SOURCE_DIR}/third_party/opencl_headers" ABSOLUTE)
if(IS_DIRECTORY ${DIR_tmp})
@ -383,6 +365,9 @@ include(cmake/find_igc.cmake)
# GmmLib detection
include(cmake/find_gmmlib.cmake)
# Metrics detection
include(cmake/find_metrics.cmake)
# LibVA detection
if(NOT DISABLE_LIBVA)
if(UNIX)

79
cmake/find_metrics.cmake Normal file
View File

@ -0,0 +1,79 @@
#
# Copyright (C) 2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
#
# DEPENDENCY DETECTION
function(dependency_detect COMPONENT_NAME DLL_NAME VAR_NAME REL_LOCATION IS_THIRD_PARTY)
if(DEFINED ${VAR_NAME}_DIR)
get_filename_component(LIBRARY_DIR "${${VAR_NAME}_DIR}" ABSOLUTE)
else()
get_filename_component(LIBRARY_DIR_tmp "${NEO_SOURCE_DIR}/${REL_LOCATION}" ABSOLUTE)
if(IS_DIRECTORY "${LIBRARY_DIR_tmp}")
set(LIBRARY_DIR "${LIBRARY_DIR_tmp}")
endif()
endif()
if(UNIX)
if(DEFINED LIBRARY_DIR)
if(IS_DIRECTORY "${LIBRARY_DIR}/lib/pkgconfig/")
set(__tmp_LIBDIR "lib")
elseif(IS_DIRECTORY "${LIBRARY_DIR}/${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
set(__tmp_LIBDIR ${CMAKE_INSTALL_LIBDIR})
endif()
endif()
find_package(PkgConfig)
if(DEFINED __tmp_LIBDIR)
set(OLD_PKG_CONFIG_PATH $ENV{PKG_CONFIG_PATH})
set(ENV{PKG_CONFIG_PATH} "${LIBRARY_DIR}/${__tmp_LIBDIR}/pkgconfig/")
endif()
pkg_check_modules(NEO__${VAR_NAME} ${DLL_NAME})
if(DEFINED __tmp_LIBDIR)
set(ENV{PKG_CONFIG_PATH} ${OLD_PKG_CONFIG_PATH})
endif()
if(NEO__${VAR_NAME}_FOUND)
if(DEFINED __tmp_LIBDIR)
if(NOT NEO__${VAR_NAME}_INCLUDE_DIRS STREQUAL "")
string(REPLACE "${NEO__${VAR_NAME}_INCLUDEDIR}" "${LIBRARY_DIR}/include/${DLL_NAME}" NEO__${VAR_NAME}_INCLUDE_DIRS "${NEO__${VAR_NAME}_INCLUDE_DIRS}")
else()
set(NEO__${VAR_NAME}_INCLUDE_DIRS "${LIBRARY_DIR}/include")
endif()
endif()
set(NEO__${VAR_NAME}_INCLUDE_DIR "${NEO__${VAR_NAME}_INCLUDE_DIRS}")
set(NEO__${VAR_NAME}_INCLUDE_DIR "${NEO__${VAR_NAME}_INCLUDE_DIRS}" PARENT_SCOPE)
set(NEO__${VAR_NAME}_LIBRARIES ${NEO__${VAR_NAME}_LIBRARIES} PARENT_SCOPE)
message(STATUS "${COMPONENT_NAME} include dirs: ${NEO__${VAR_NAME}_INCLUDE_DIR}")
return()
endif()
else()
# Windows
endif()
if(IS_THIRD_PARTY)
string(TOLOWER ${VAR_NAME} _VAR_NAME_LOWER)
get_filename_component(${VAR_NAME}_HEADERS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party${BRANCH_DIR_SUFFIX}/${_VAR_NAME_LOWER}" ABSOLUTE)
if(IS_DIRECTORY ${${VAR_NAME}_HEADERS_DIR})
message(STATUS "${COMPONENT_NAME} dir: ${${VAR_NAME}_HEADERS_DIR}")
set(NEO__${VAR_NAME}_INCLUDE_DIR "${${VAR_NAME}_HEADERS_DIR}" PARENT_SCOPE)
return()
endif()
endif()
message(FATAL_ERROR "${COMPONENT_NAME} not found!")
endfunction()
# Metrics Library Detection
dependency_detect("Metrics Library" libigdml METRICS_LIBRARY "../metrics/library" TRUE)
include_directories("${NEO__METRICS_LIBRARY_INCLUDE_DIR}")
# Metrics Discovery Detection
dependency_detect("Metrics Discovery" libmd METRICS_DISCOVERY "../metrics/discovery" TRUE)
include_directories("${NEO__METRICS_DISCOVERY_INCLUDE_DIR}")