From e78ada117849c644f1c13f535e93cde970c45599 Mon Sep 17 00:00:00 2001 From: Ilya Churaev Date: Wed, 12 Jan 2022 20:23:18 +0300 Subject: [PATCH] Introduce dev_api for core component (#9571) * Introduce dev_api for core component * Fixed CPU plugin for static build * Fixed comments --- src/cmake/ov_runtime.cmake | 1 + .../offline_transformations/CMakeLists.txt | 4 -- src/core/CMakeLists.txt | 6 ++- src/core/{src => dev_api}/so_extension.hpp | 0 src/core/tests/CMakeLists.txt | 7 +-- src/frontends/common/CMakeLists.txt | 6 +-- src/frontends/ir/CMakeLists.txt | 4 -- src/inference/CMakeLists.txt | 6 +-- src/plugins/intel_cpu/CMakeLists.txt | 43 ++++++++++--------- src/tests/unit/cpu/CMakeLists.txt | 6 ++- 10 files changed, 36 insertions(+), 47 deletions(-) rename src/core/{src => dev_api}/so_extension.hpp (100%) diff --git a/src/cmake/ov_runtime.cmake b/src/cmake/ov_runtime.cmake index d9194b520de..5e54eba5c8c 100644 --- a/src/cmake/ov_runtime.cmake +++ b/src/cmake/ov_runtime.cmake @@ -65,6 +65,7 @@ install(TARGETS ${TARGET_NAME} EXPORT OpenVINOTargets # --------------- OpenVINO runtime library dev ------------------------------ add_library(${TARGET_NAME}_dev INTERFACE) target_include_directories(${TARGET_NAME}_dev INTERFACE $ + $ $ $ $ diff --git a/src/common/offline_transformations/CMakeLists.txt b/src/common/offline_transformations/CMakeLists.txt index 25fefe22c26..da9c0e075bb 100644 --- a/src/common/offline_transformations/CMakeLists.txt +++ b/src/common/offline_transformations/CMakeLists.txt @@ -28,10 +28,6 @@ target_include_directories(${TARGET_NAME} PUBLIC ${PUBLIC_HEADERS_DIR} add_cpplint_target(${TARGET_NAME}_cpplint FOR_TARGETS ${TARGET_NAME}) -# Add include path to so_extension.hpp -set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/src/json_extension/json_config.cpp - PROPERTIES INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") - # developer package openvino_developer_export_targets(COMPONENT core TARGETS ${TARGET_NAME}) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 6562d8127e2..2564ce7d8f9 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -46,6 +46,10 @@ set_source_files_properties(${MIXED_SRC} source_group("src" FILES ${LIBRARY_SRC}) source_group("include" FILES ${PUBLIC_HEADERS}) +# Create ov_core_dev library +add_library(ov_core_dev INTERFACE) +target_include_directories(ov_core_dev INTERFACE $) + # Create static or shared library depending on BUILD_SHARED_LIBS add_library(ngraph_obj OBJECT ${LIBRARY_SRC} ${PUBLIC_HEADERS} ${IE_SHARED_SRCS}) @@ -57,7 +61,7 @@ ie_faster_build(ngraph_obj addVersionDefines(src/version.cpp CI_BUILD_NUMBER) -target_link_libraries(ngraph_obj PRIVATE ngraph::builder ngraph::reference openvino::util pugixml::static ov_shape_inference) +target_link_libraries(ngraph_obj PRIVATE ngraph::builder ngraph::reference openvino::util pugixml::static ov_shape_inference ov_core_dev) ie_mark_target_as_cc(ngraph_obj) diff --git a/src/core/src/so_extension.hpp b/src/core/dev_api/so_extension.hpp similarity index 100% rename from src/core/src/so_extension.hpp rename to src/core/dev_api/so_extension.hpp diff --git a/src/core/tests/CMakeLists.txt b/src/core/tests/CMakeLists.txt index b8db1d00cda..de58ad18f9a 100644 --- a/src/core/tests/CMakeLists.txt +++ b/src/core/tests/CMakeLists.txt @@ -411,10 +411,6 @@ set(SRC set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/threading.cpp PROPERTIES INCLUDE_DIRECTORIES $) -# Add include path to so_extension.hpp -set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/extension.cpp - APPEND PROPERTY INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") - if(SUGGEST_OVERRIDE_SUPPORTED) set_source_files_properties(ov_tensor_test.cpp PROPERTIES COMPILE_OPTIONS -Wno-suggest-override) @@ -581,8 +577,7 @@ target_link_libraries(ov_core_unit_tests PRIVATE ngraph_test_util ${CMAKE_DL_LIBS} Threads::Threads openvino::conditional_compilation - openvino::util - frontend_common) + openvino::runtime::dev) # Protobuf-lite does not support parsing files from prototxt format # Since most of the onnx models are stored in this format it have to be disabled diff --git a/src/frontends/common/CMakeLists.txt b/src/frontends/common/CMakeLists.txt index 1987cdbe1df..581092359d2 100644 --- a/src/frontends/common/CMakeLists.txt +++ b/src/frontends/common/CMakeLists.txt @@ -12,10 +12,6 @@ file(GLOB_RECURSE LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) file(GLOB_RECURSE LIBRARY_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp) file(GLOB_RECURSE LIBRARY_PUBLIC_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp) -# Add include path to so_extension.hpp -set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/frontend.cpp - APPEND PROPERTY INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") - set(FRONTEND_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) source_group("src" FILES ${LIBRARY_SRC}) @@ -41,7 +37,7 @@ if(NOT BUILD_SHARED_LIBS) target_compile_definitions(${TARGET_NAME}_obj PUBLIC OPENVINO_STATIC_LIBRARY) endif() -target_link_libraries(${TARGET_NAME}_obj PRIVATE openvino::util) +target_link_libraries(${TARGET_NAME}_obj PRIVATE openvino::util ov_core_dev) set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/plugin_loader.cpp diff --git a/src/frontends/ir/CMakeLists.txt b/src/frontends/ir/CMakeLists.txt index 0a3d2617c39..5df6eb903a2 100644 --- a/src/frontends/ir/CMakeLists.txt +++ b/src/frontends/ir/CMakeLists.txt @@ -7,7 +7,3 @@ ov_add_frontend(NAME ir LINK_LIBRARIES pugixml::static # TODO: remove dependency below in CVS-69781 openvino::runtime::dev) - -# Add include path to so_extension.hpp -set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/src/frontend.cpp - PROPERTIES INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") diff --git a/src/inference/CMakeLists.txt b/src/inference/CMakeLists.txt index 5aaeb7cb4ed..82dc9e5f8e5 100644 --- a/src/inference/CMakeLists.txt +++ b/src/inference/CMakeLists.txt @@ -12,10 +12,6 @@ file (GLOB LIBRARY_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/cpp_interfaces/interface/*.cpp ) -# Add include path to so_extension.hpp -set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/ie_core.cpp - APPEND PROPERTY INCLUDE_DIRECTORIES "${OpenVINO_SOURCE_DIR}/src/core/src/") - # TODO: WA for OneHot pass usage in reshape set(LEGACY_SRC_ROOT "${OpenVINO_SOURCE_DIR}/src/common/legacy/src") set(LEGACY_LIBRARY_SHARED_SRCS @@ -144,7 +140,7 @@ target_include_directories(${TARGET_NAME}_obj PRIVATE "${CMAKE_CURRENT_SOURCE_DI $ $) -target_link_libraries(${TARGET_NAME}_obj PRIVATE openvino::itt openvino::util) +target_link_libraries(${TARGET_NAME}_obj PRIVATE openvino::itt openvino::util ov_core_dev) set_ie_threading_interface_for(${TARGET_NAME}_obj) if (TBBBIND_2_5_FOUND) diff --git a/src/plugins/intel_cpu/CMakeLists.txt b/src/plugins/intel_cpu/CMakeLists.txt index 7b501f22b02..0b90bef55a7 100644 --- a/src/plugins/intel_cpu/CMakeLists.txt +++ b/src/plugins/intel_cpu/CMakeLists.txt @@ -66,30 +66,31 @@ ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME}) # add test object library -add_library(${TARGET_NAME}_obj OBJECT ${SOURCES} ${HEADERS}) -link_system_libraries(${TARGET_NAME}_obj PUBLIC mkldnn) +if(BUILD_SHARED_LIBS) + add_library(${TARGET_NAME}_obj OBJECT ${SOURCES} ${HEADERS}) + link_system_libraries(${TARGET_NAME}_obj PUBLIC mkldnn) -target_include_directories(${TARGET_NAME}_obj PRIVATE $ - $ - $ - $ - $ - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src - $) + target_include_directories(${TARGET_NAME}_obj PRIVATE $ + $ + $ + $ + $ + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src + $) -target_include_directories(${TARGET_NAME}_obj SYSTEM PUBLIC $) + target_include_directories(${TARGET_NAME}_obj SYSTEM PUBLIC $) -set_ie_threading_interface_for(${TARGET_NAME}_obj) + set_ie_threading_interface_for(${TARGET_NAME}_obj) -target_compile_definitions(${TARGET_NAME}_obj PRIVATE - USE_STATIC_IE IMPLEMENT_INFERENCE_ENGINE_PLUGIN IMPLEMENT_INFERENCE_EXTENSION_API - $ - $ -) + target_compile_definitions(${TARGET_NAME}_obj PRIVATE + USE_STATIC_IE IMPLEMENT_INFERENCE_ENGINE_PLUGIN IMPLEMENT_INFERENCE_EXTENSION_API + $ + $ + ) -set_target_properties(${TARGET_NAME}_obj PROPERTIES EXCLUDE_FROM_ALL ON) + set_target_properties(${TARGET_NAME}_obj PROPERTIES EXCLUDE_FROM_ALL ON) -# LTO - -set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj - PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO}) + # LTO + set_target_properties(${TARGET_NAME} ${TARGET_NAME}_obj + PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE ${ENABLE_LTO}) +endif() diff --git a/src/tests/unit/cpu/CMakeLists.txt b/src/tests/unit/cpu/CMakeLists.txt index be1a036431a..e45503bb221 100644 --- a/src/tests/unit/cpu/CMakeLists.txt +++ b/src/tests/unit/cpu/CMakeLists.txt @@ -4,6 +4,10 @@ set(TARGET_NAME cpuUnitTests) +if(BUILD_SHARED_LIBS) + set (OBJ_LIB $) +endif() + addIeTargetTest( NAME ${TARGET_NAME} ROOT ${CMAKE_CURRENT_SOURCE_DIR} @@ -12,7 +16,7 @@ addIeTargetTest( $/src/nodes $ OBJECT_FILES - $ + ${OBJ_LIB} LINK_LIBRARIES gtest gtest_main