From 28756d6ccf95ea4462a403e7b20f8567704af3ff Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Mon, 13 Dec 2021 23:46:39 +0300 Subject: [PATCH] Introduce separate install TBB script (#9175) --- cmake/dependencies.cmake | 2 +- src/CMakeLists.txt | 2 + {cmake => src/cmake}/ie_parallel.cmake | 0 src/cmake/install_tbb.cmake | 73 +++++++++++++++++++++++++ src/inference/CMakeLists.txt | 74 +------------------------- 5 files changed, 78 insertions(+), 73 deletions(-) rename {cmake => src/cmake}/ie_parallel.cmake (100%) create mode 100644 src/cmake/install_tbb.cmake diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index d1c9f5310cf..cd433dbf639 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -265,7 +265,7 @@ else() reset_deps_cache(OpenCV_DIR) endif() -include(${OpenVINO_SOURCE_DIR}/cmake/ie_parallel.cmake) +include(${OpenVINO_SOURCE_DIR}/src/cmake/ie_parallel.cmake) if(ENABLE_INTEL_GNA) reset_deps_cache( diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7375c43a800..942dfd190a7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -9,6 +9,8 @@ add_definitions(-DPROJECT_ROOT_DIR="${CMAKE_CURRENT_SOURCE_DIR}") add_custom_target(ov_runtime_libraries) +include(cmake/install_tbb.cmake) + # TODO: Fix Wall for core, frontends, tests and c binding add_subdirectory(core) add_subdirectory(frontends) diff --git a/cmake/ie_parallel.cmake b/src/cmake/ie_parallel.cmake similarity index 100% rename from cmake/ie_parallel.cmake rename to src/cmake/ie_parallel.cmake diff --git a/src/cmake/install_tbb.cmake b/src/cmake/install_tbb.cmake new file mode 100644 index 00000000000..d2a2c4e8202 --- /dev/null +++ b/src/cmake/install_tbb.cmake @@ -0,0 +1,73 @@ +# Copyright (C) 2021 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# + +if(ENABLE_TBBBIND_2_5) + # try to find prebuilt version of tbbbind_2_5 + find_package(TBBBIND_2_5 QUIET) + if(TBBBIND_2_5_FOUND) + message(STATUS "Static tbbbind_2_5 package is found") + set_target_properties(${TBBBIND_2_5_IMPORTED_TARGETS} PROPERTIES + INTERFACE_COMPILE_DEFINITIONS TBBBIND_2_5_AVAILABLE) + if(NOT BUILD_SHARED_LIBS) + set(install_tbbbind ON) + endif() + endif() +endif() + +# install TBB + +# define variables for InferenceEngineConfig.cmake +if(THREADING MATCHES "^(TBB|TBB_AUTO)$") + set(IE_TBB_DIR "${TBB_DIR}") + list(APPEND PATH_VARS "IE_TBB_DIR") +endif() + +if(install_tbbbind) + set(IE_TBBBIND_DIR "${TBBBIND_2_5}") + list(APPEND PATH_VARS "IE_TBBBIND_DIR") +endif() + +# install only downloaded TBB, system one is not installed +if(THREADING MATCHES "^(TBB|TBB_AUTO)$" AND TBBROOT MATCHES ${TEMP}) + ie_cpack_add_component(tbb REQUIRED) + ie_cpack_add_component(tbb_dev REQUIRED) + list(APPEND core_components tbb) + list(APPEND core_dev_components tbb_dev) + + install(DIRECTORY "${TBB}/lib" + DESTINATION runtime/3rdparty/tbb + COMPONENT tbb) + # Windows only + if(EXISTS "${TBB}/bin") + install(DIRECTORY "${TBB}/bin" + DESTINATION runtime/3rdparty/tbb + COMPONENT tbb) + endif() + install(FILES "${TBB}/LICENSE" + DESTINATION runtime/3rdparty/tbb + COMPONENT tbb) + + set(IE_TBB_DIR_INSTALL "3rdparty/tbb/cmake") + install(FILES "${TBB}/cmake/TBBConfig.cmake" + "${TBB}/cmake/TBBConfigVersion.cmake" + DESTINATION runtime/${IE_TBB_DIR_INSTALL} + COMPONENT tbb_dev) + install(DIRECTORY "${TBB}/include" + DESTINATION runtime/3rdparty/tbb + COMPONENT tbb_dev) +endif() + +if(install_tbbbind) + install(DIRECTORY "${TBBBIND_2_5}/lib" + DESTINATION runtime/3rdparty/tbb_bind_2_5 + COMPONENT tbb) + install(FILES "${TBBBIND_2_5}/LICENSE" + DESTINATION runtime/3rdparty/tbb_bind_2_5 + COMPONENT tbb) + + set(IE_TBBBIND_DIR_INSTALL "3rdparty/tbb_bind_2_5/cmake") + install(FILES "${TBBBIND_2_5}/cmake/TBBBIND_2_5Config.cmake" + DESTINATION runtime/${IE_TBBBIND_DIR_INSTALL} + COMPONENT tbb_dev) +endif() diff --git a/src/inference/CMakeLists.txt b/src/inference/CMakeLists.txt index 04abe4a7b35..47fd6812b5b 100644 --- a/src/inference/CMakeLists.txt +++ b/src/inference/CMakeLists.txt @@ -4,19 +4,6 @@ set (TARGET_NAME "inference_engine") -if(ENABLE_TBBBIND_2_5) - # try to find prebuilt version of tbbbind_2_5 - find_package(TBBBIND_2_5 QUIET) - if(TBBBIND_2_5_FOUND) - message(STATUS "Static tbbbind_2_5 package is found") - set_target_properties(${TBBBIND_2_5_IMPORTED_TARGETS} PROPERTIES - INTERFACE_COMPILE_DEFINITIONS TBBBIND_2_5_AVAILABLE) - if(NOT BUILD_SHARED_LIBS) - set(install_tbbbind ON) - endif() - endif() -endif() - file (GLOB LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/*.cpp @@ -256,66 +243,9 @@ export(TARGETS ${TARGET_NAME} NAMESPACE openvino:: openvino_developer_export_targets(COMPONENT core TARGETS ${TARGET_NAME}_plugin_api) -# install TBB - list(APPEND PATH_VARS "IE_INCLUDE_DIR" "OV_CORE_DIR" "IE_PARALLEL_CMAKE") -# define variables for InferenceEngineConfig.cmake -if(THREADING MATCHES "^(TBB|TBB_AUTO)$") - set(IE_TBB_DIR "${TBB_DIR}") - list(APPEND PATH_VARS "IE_TBB_DIR") -endif() - -if(install_tbbbind) - set(IE_TBBBIND_DIR "${TBBBIND_2_5}") - list(APPEND PATH_VARS "IE_TBBBIND_DIR") -endif() - -# install only downloaded TBB, system one is not installed -if(THREADING MATCHES "^(TBB|TBB_AUTO)$" AND TBBROOT MATCHES ${TEMP}) - ie_cpack_add_component(tbb REQUIRED) - ie_cpack_add_component(tbb_dev REQUIRED) - list(APPEND core_components tbb) - list(APPEND core_dev_components tbb_dev) - - install(DIRECTORY "${TBB}/lib" - DESTINATION runtime/3rdparty/tbb - COMPONENT tbb) - # Windows only - if(EXISTS "${TBB}/bin") - install(DIRECTORY "${TBB}/bin" - DESTINATION runtime/3rdparty/tbb - COMPONENT tbb) - endif() - install(FILES "${TBB}/LICENSE" - DESTINATION runtime/3rdparty/tbb - COMPONENT tbb) - - set(IE_TBB_DIR_INSTALL "3rdparty/tbb/cmake") - install(FILES "${TBB}/cmake/TBBConfig.cmake" - "${TBB}/cmake/TBBConfigVersion.cmake" - DESTINATION runtime/${IE_TBB_DIR_INSTALL} - COMPONENT tbb_dev) - install(DIRECTORY "${TBB}/include" - DESTINATION runtime/3rdparty/tbb - COMPONENT tbb_dev) -endif() - -if(install_tbbbind) - install(DIRECTORY "${TBBBIND_2_5}/lib" - DESTINATION runtime/3rdparty/tbb_bind_2_5 - COMPONENT tbb) - install(FILES "${TBBBIND_2_5}/LICENSE" - DESTINATION runtime/3rdparty/tbb_bind_2_5 - COMPONENT tbb) - - set(IE_TBBBIND_DIR_INSTALL "3rdparty/tbb_bind_2_5/cmake") - install(FILES "${TBBBIND_2_5}/cmake/TBBBIND_2_5Config.cmake" - DESTINATION runtime/${IE_TBBBIND_DIR_INSTALL} - COMPONENT tbb_dev) -endif() - # Install Inference Engine ie_cpack_add_component(core REQUIRED DEPENDS ${core_components}) @@ -362,7 +292,7 @@ install(EXPORT OpenVINOTargets set(OV_CORE_DIR "${CMAKE_BINARY_DIR}/src/core") set(IE_INCLUDE_DIR "${PUBLIC_HEADERS_DIR}/ie") -set(IE_PARALLEL_CMAKE "${OpenVINO_SOURCE_DIR}/cmake/ie_parallel.cmake") +set(IE_PARALLEL_CMAKE "${OpenVINO_SOURCE_DIR}/src/cmake/ie_parallel.cmake") configure_package_config_file("${OpenVINO_SOURCE_DIR}/cmake/templates/InferenceEngineConfig.cmake.in" "${CMAKE_BINARY_DIR}/InferenceEngineConfig.cmake" @@ -397,7 +327,7 @@ configure_file("${OpenVINO_SOURCE_DIR}/cmake/templates/OpenVINOConfig-version.cm install(FILES "${CMAKE_BINARY_DIR}/share/InferenceEngineConfig.cmake" "${CMAKE_BINARY_DIR}/InferenceEngineConfig-version.cmake" - "${OpenVINO_SOURCE_DIR}/cmake/ie_parallel.cmake" + "${OpenVINO_SOURCE_DIR}/src/cmake/ie_parallel.cmake" DESTINATION runtime/cmake COMPONENT core_dev)