1 # Copyright (C) 2018-2019 Intel Corporation
3 # SPDX-License-Identifier: Apache-2.0
9 # You can specify the path to Inference Engine files in IE_ROOT_DIR
11 # This will define the following variables:
13 # InferenceEngine_FOUND - True if the system has the Inference Engine library
14 # InferenceEngine_INCLUDE_DIRS - Inference Engine include directories
15 # InferenceEngine_LIBRARIES - Inference Engine libraries
17 # and the following imported targets:
19 # IE::inference_engine - The Inference Engine library
22 macro(ext_message TRACE_LEVEL)
23 if (${TRACE_LEVEL} STREQUAL FATAL_ERROR)
24 if(InferenceEngine_FIND_REQUIRED)
25 message(FATAL_ERROR "${ARGN}")
26 elseif(NOT InferenceEngine_FIND_QUIETLY)
27 message(WARNING "${ARGN}")
30 elseif(NOT InferenceEngine_FIND_QUIETLY)
31 message(${TRACE_LEVEL} "${ARGN}")
35 set(InferenceEngine_FOUND FALSE)
37 if(TARGET IE::inference_engine)
38 set(InferenceEngine_FOUND TRUE)
39 get_target_property(InferenceEngine_INCLUDE_DIRS IE::inference_engine INTERFACE_INCLUDE_DIRECTORIES)
40 set(InferenceEngine_LIBRARIES IE::inference_engine)
45 if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
47 elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
49 elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386")
54 set(THREADING "@THREADING@")
56 # check whether setvars.sh is sourced
57 if(NOT IE_ROOT_DIR AND (DEFINED ENV{InferenceEngine_DIR} OR InferenceEngine_DIR OR DEFINED ENV{INTEL_OPENVINO_DIR}))
58 if (EXISTS "${InferenceEngine_DIR}")
59 # InferenceEngine_DIR manually set via command line params
60 set(IE_ROOT_DIR "${InferenceEngine_DIR}/..")
61 elseif (EXISTS "$ENV{InferenceEngine_DIR}")
62 # InferenceEngine_DIR manually set via env
63 set(IE_ROOT_DIR "$ENV{InferenceEngine_DIR}/..")
64 elseif (EXISTS "$ENV{INTEL_OPENVINO_DIR}/inference_engine")
65 # if we installed DL SDK
66 set(IE_ROOT_DIR "$ENV{INTEL_OPENVINO_DIR}/inference_engine")
67 elseif (EXISTS "$ENV{INTEL_OPENVINO_DIR}/deployment_tools/inference_engine")
69 set(IE_ROOT_DIR "$ENV{INTEL_OPENVINO_DIR}/deployment_tools/inference_engine")
74 ext_message(FATAL_ERROR "inference_engine directory is not found")
78 if(IE_INCLUDE_DIR AND NOT "${IE_ROOT_DIR}/include" EQUAL "${IE_INCLUDE_DIR}")
79 unset(IE_INCLUDE_DIR CACHE)
82 if(IE_SRC_DIR AND NOT "${IE_ROOT_DIR}/src" EQUAL "${IE_SRC_DIR}")
83 unset(IE_SRC_DIR CACHE)
86 if(IE_LIBRARY AND NOT "${IE_ROOT_DIR}/lib/${_ARCH}" EQUAL "${IE_LIBRARY}")
87 unset(IE_LIBRARY CACHE)
90 set(_IE_ROOT_INCLUDE_DIR "${IE_ROOT_DIR}/include")
91 set(_IE_ROOT_SRC_DIR "${IE_ROOT_DIR}/src")
92 set(_IE_ROOT_LIBRARY "${IE_ROOT_DIR}/lib/${_ARCH}")
94 find_path(IE_INCLUDE_DIR inference_engine.hpp "${_IE_ROOT_INCLUDE_DIR}")
95 find_path(IE_SRC_DIR extension "${_IE_ROOT_SRC_DIR}")
97 set(IE_LIB_DIR "${_IE_ROOT_LIBRARY}")
98 set(IE_LIB_REL_DIR "${IE_LIB_DIR}/Release")
99 set(IE_LIB_DBG_DIR "${IE_LIB_DIR}/Debug")
100 set(IE_EXTERNAL_DIR "${IE_ROOT_DIR}/external")
102 include(FindPackageHandleStandardArgs)
105 find_library(IE_RELEASE_LIBRARY inference_engine@IE_RELEASE_POSTFIX_WIN@ "${IE_LIB_REL_DIR}")
106 find_library(IE_DEBUG_LIBRARY inference_engine@IE_DEBUG_POSTFIX_WIN@ "${IE_LIB_DBG_DIR}")
107 find_package_handle_standard_args( InferenceEngine
108 FOUND_VAR INFERENCEENGINE_FOUND
109 REQUIRED_VARS IE_RELEASE_LIBRARY IE_DEBUG_LIBRARY IE_INCLUDE_DIR
110 FAIL_MESSAGE "Inference Engine cannot be found at ${_IE_ROOT_LIBRARY}. Please consult InferenceEgnineConfig.cmake module's help page.")
112 find_library(IE_LIBRARY inference_engine@IE_RELEASE_POSTFIX_LIN@ "${IE_LIB_DIR}")
113 find_package_handle_standard_args( InferenceEngine
114 FOUND_VAR INFERENCEENGINE_FOUND
115 REQUIRED_VARS IE_LIBRARY IE_INCLUDE_DIR
116 FAIL_MESSAGE "Inference Engine cannot be found at ${_IE_ROOT_LIBRARY}. Please consult InferenceEgnineConfig.cmake module's help page.")
118 if(INFERENCEENGINE_FOUND)
119 # to keep this line for successful execution in CMake 2.8
120 set(InferenceEngine_FOUND TRUE)
122 add_library(IE::inference_engine SHARED IMPORTED GLOBAL)
125 set_property(TARGET IE::inference_engine APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
126 set_property(TARGET IE::inference_engine APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
128 set_target_properties(IE::inference_engine PROPERTIES
129 IMPORTED_IMPLIB_RELEASE "${IE_RELEASE_LIBRARY}"
130 IMPORTED_IMPLIB_DEBUG "${IE_DEBUG_LIBRARY}"
131 MAP_IMPORTED_CONFIG_DEBUG Debug
132 MAP_IMPORTED_CONFIG_RELEASE Release
133 MAP_IMPORTED_CONFIG_RELWITHDEBINFO Release
134 INTERFACE_INCLUDE_DIRECTORIES "${IE_INCLUDE_DIR}")
136 set_target_properties(IE::inference_engine PROPERTIES
137 IMPORTED_LOCATION "${IE_LIBRARY}"
138 INTERFACE_INCLUDE_DIRECTORIES "${IE_INCLUDE_DIR}")
139 target_link_libraries(IE::inference_engine INTERFACE ${CMAKE_DL_LIBS})
142 set(InferenceEngine_INCLUDE_DIRS ${IE_INCLUDE_DIR})
143 set(InferenceEngine_LIBRARIES IE::inference_engine)
145 include("${IE_ROOT_DIR}/share/ie_parallel.cmake")
147 add_subdirectory(${IE_SRC_DIR}/extension EXCLUDE_FROM_ALL ie_cpu_extension)
148 add_library(IE::ie_cpu_extension ALIAS ie_cpu_extension)