86 lines
2.9 KiB
CMake
86 lines
2.9 KiB
CMake
#
|
|
# 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()
|
|
|