compute-runtime/cmake/find_metrics.cmake

86 lines
2.9 KiB
CMake
Raw Normal View History

#
# Copyright (C) 2021-2022 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()
if(NOT DLL_NAME STREQUAL "")
pkg_check_modules(NEO__${VAR_NAME} ${DLL_NAME})
endif()
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" 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)
if(NOT NEO__METRICS_LIBRARY_INCLUDE_DIR STREQUAL "")
include_directories("${NEO__METRICS_LIBRARY_INCLUDE_DIR}")
endif()
# Metrics Discovery Detection
dependency_detect("Metrics Discovery" libigdmd METRICS_DISCOVERY "../metrics/discovery" TRUE)
if(NOT NEO__METRICS_DISCOVERY_INCLUDE_DIR STREQUAL "")
include_directories("${NEO__METRICS_DISCOVERY_INCLUDE_DIR}")
endif()