ie_dependent_option (ENABLE_AVX512F "Enable AVX512 optimizations" ON "X86_64 OR X86" OFF)
-ie_dependent_option (ENABLE_PROFILING_ITT "ITT tracing of IE and plugins internals" ON "NOT CMAKE_CROSSCOMPILING" OFF)
+ie_option (ENABLE_PROFILING_ITT "Build with ITT tracing. Optionally configure pre-built ittnotify library though INTEL_VTUNE_DIR variable." OFF)
# Documentation build
ie_option (ENABLE_DOCS "build docs using Doxygen" OFF)
file(GLOB_RECURSE SOURCES "src/*.cpp")
if(ENABLE_PROFILING_ITT)
- find_package(ITT)
- if(NOT ITT_FOUND)
- message(WARNING "Profiling option enabled, but no ITT library was found")
+ if(DEFINED INTEL_VTUNE_DIR OR DEFINED ENV{INTEL_VTUNE_DIR})
+ find_package(ITT)
+ if(NOT ITT_FOUND)
+ message(WARNING "Profiling option enabled, but no ITT library was found under INTEL_VTUNE_DIR")
+ endif()
+ else()
+ include(ExternalProject)
+ set(ITTAPI_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ittapi/build)
+ set(ITTAPI_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ittapi/source)
+ set(ITTNOTIFY_LIBRARY ${ITTAPI_BINARY_DIR}/bin/${CMAKE_STATIC_LIBRARY_PREFIX}ittnotify${CMAKE_STATIC_LIBRARY_SUFFIX})
+ ExternalProject_Add(
+ ext_ittapi
+ PREFIX ittapi
+ GIT_REPOSITORY https://github.com/intel/ittapi.git
+ GIT_TAG v3.18.6
+ LOG_DOWNLOAD ON
+ LOG_CONFIGURE ON
+ LOG_BUILD ON
+ INSTALL_COMMAND ""
+ UPDATE_COMMAND ""
+ CMAKE_GENERATOR ${CMAKE_GENERATOR}
+ CMAKE_GENERATOR_PLATFORM ${CMAKE_GENERATOR_PLATFORM}
+ CMAKE_GENERATOR_TOOLSET ${CMAKE_GENERATOR_TOOLSET}
+ BINARY_DIR ${ITTAPI_BINARY_DIR}
+ SOURCE_DIR ${ITTAPI_SOURCE_DIR}
+ EXCLUDE_FROM_ALL TRUE
+ BUILD_BYPRODUCTS ${ITTNOTIFY_LIBRARY})
+ add_library(ittnotify INTERFACE)
+ add_dependencies(ittnotify ittapi_external)
+ target_link_libraries(ittnotify INTERFACE ${ITTNOTIFY_LIBRARY})
+ target_include_directories(ittnotify INTERFACE ${ITTAPI_SOURCE_DIR}/include)
+ openvino_developer_export_targets(ittnotify)
endif()
endif()