151 lines
4.5 KiB
CMake
151 lines
4.5 KiB
CMake
# Copyright (C) 2018-2021 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
#
|
|
# Inference Engine cmake config
|
|
# ------
|
|
#
|
|
# This config defines the following variables:
|
|
#
|
|
# InferenceEngine_FOUND - True if the system has the Inference Engine library
|
|
# InferenceEngine_INCLUDE_DIRS - Inference Engine include directories
|
|
# InferenceEngine_LIBRARIES - Inference Engine libraries
|
|
#
|
|
# and the following imported targets:
|
|
#
|
|
# IE::inference_engine - The Inference Engine library
|
|
# IE::inference_engine_c_api - The Inference Engine C API library
|
|
#
|
|
# Inference Engine version variables:
|
|
#
|
|
# InferenceEngine_VERSION_MAJOR - major version component
|
|
# InferenceEngine_VERSION_MINOR - minor version component
|
|
# InferenceEngine_VERSION_PATCH - patch version component
|
|
#
|
|
|
|
@PACKAGE_INIT@
|
|
|
|
#
|
|
# Common functions
|
|
#
|
|
|
|
if(NOT DEFINED CMAKE_FIND_PACKAGE_NAME)
|
|
set(CMAKE_FIND_PACKAGE_NAME InferenceEngine)
|
|
set(_need_package_name_reset ON)
|
|
endif()
|
|
|
|
# we have to use our own version of find_dependency because of support cmake 3.7
|
|
macro(_ie_find_dependency dep)
|
|
set(cmake_fd_quiet_arg)
|
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
|
|
set(cmake_fd_quiet_arg QUIET)
|
|
endif()
|
|
set(cmake_fd_required_arg)
|
|
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
|
|
set(cmake_fd_required_arg REQUIRED)
|
|
endif()
|
|
|
|
get_property(cmake_fd_alreadyTransitive GLOBAL PROPERTY
|
|
_CMAKE_${dep}_TRANSITIVE_DEPENDENCY)
|
|
|
|
find_package(${dep} ${ARGN}
|
|
${cmake_fd_quiet_arg}
|
|
${cmake_fd_required_arg})
|
|
|
|
if(NOT DEFINED cmake_fd_alreadyTransitive OR cmake_fd_alreadyTransitive)
|
|
set_property(GLOBAL PROPERTY _CMAKE_${dep}_TRANSITIVE_DEPENDENCY TRUE)
|
|
endif()
|
|
|
|
if(NOT ${dep}_FOUND)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "${CMAKE_FIND_PACKAGE_NAME} could not be found because dependency ${dep} could not be found.")
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND False)
|
|
return()
|
|
endif()
|
|
|
|
set(cmake_fd_required_arg)
|
|
set(cmake_fd_quiet_arg)
|
|
endmacro()
|
|
|
|
function(_ie_target_no_deprecation_error)
|
|
if(NOT MSVC)
|
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
|
set(flags "-diag-warning=1786")
|
|
else()
|
|
set(flags "-Wno-error=deprecated-declarations")
|
|
endif()
|
|
|
|
set_target_properties(${ARGV} PROPERTIES INTERFACE_COMPILE_OPTIONS ${flags})
|
|
endif()
|
|
endfunction()
|
|
|
|
#
|
|
# Inference Engine config
|
|
#
|
|
|
|
# need to store current PACKAGE_PREFIX_DIR, because it's overwritten by ngraph one
|
|
set(IE_PACKAGE_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")
|
|
|
|
set(THREADING "@THREADING@")
|
|
if(THREADING STREQUAL "TBB" OR THREADING STREQUAL "TBB_AUTO" AND NOT TBB_FOUND)
|
|
set_and_check(_tbb_dir "@PACKAGE_IE_TBB_DIR@")
|
|
_ie_find_dependency(TBB
|
|
COMPONENTS tbb tbbmalloc
|
|
CONFIG
|
|
PATHS ${TBBROOT}/cmake
|
|
${_tbb_dir}
|
|
NO_CMAKE_FIND_ROOT_PATH
|
|
NO_DEFAULT_PATH)
|
|
endif()
|
|
|
|
set_and_check(_ngraph_dir "@PACKAGE_IE_NGRAPH_DIR@")
|
|
_ie_find_dependency(ngraph
|
|
CONFIG
|
|
PATHS ${_ngraph_dir}
|
|
NO_CMAKE_FIND_ROOT_PATH
|
|
NO_DEFAULT_PATH)
|
|
|
|
if(NOT TARGET inference_engine)
|
|
set(_ie_as_external_package ON)
|
|
include("${CMAKE_CURRENT_LIST_DIR}/InferenceEngineTargets.cmake")
|
|
endif()
|
|
|
|
# mark components as available
|
|
foreach(comp inference_engine inference_engine_c_api)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_${comp}_FOUND ON)
|
|
endforeach()
|
|
|
|
if(NOT ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
set(${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS inference_engine inference_engine_c_api)
|
|
endif()
|
|
|
|
unset(InferenceEngine_LIBRARIES)
|
|
foreach(comp IN LISTS ${CMAKE_FIND_PACKAGE_NAME}_FIND_COMPONENTS)
|
|
# check if the component is available
|
|
if(${CMAKE_FIND_PACKAGE_NAME}_${comp}_FOUND)
|
|
set(pcomp ${comp})
|
|
if(_ie_as_external_package)
|
|
set(pcomp IE::${comp})
|
|
endif()
|
|
|
|
list(APPEND InferenceEngine_LIBRARIES ${pcomp})
|
|
endif()
|
|
endforeach()
|
|
|
|
if(_ie_as_external_package)
|
|
_ie_target_no_deprecation_error(${InferenceEngine_LIBRARIES})
|
|
endif()
|
|
unset(_ie_as_external_package)
|
|
|
|
# restore PACKAGE_PREFIX_DIR
|
|
set(PACKAGE_PREFIX_DIR ${IE_PACKAGE_PREFIX_DIR})
|
|
unset(IE_PACKAGE_PREFIX_DIR)
|
|
|
|
set_and_check(InferenceEngine_INCLUDE_DIRS "@PACKAGE_IE_INCLUDE_DIR@")
|
|
|
|
check_required_components(${CMAKE_FIND_PACKAGE_NAME})
|
|
|
|
if(_need_package_name_reset)
|
|
unset(CMAKE_FIND_PACKAGE_NAME)
|
|
unset(_need_package_name_reset)
|
|
endif()
|