Enabled proper OpenVINOConfig.cmake generation for static build (#8634)

* Enabled PDPD, TF on Windows

* Try to build samples against static libs

* Fixes

* Fixes

* fix

* Used ENABLE_GAPI_PREPROCESSING in C API tests

* Revert "Used ENABLE_GAPI_PREPROCESSING in C API tests"

This reverts commit df9d53e3cc.

* Fixes

* Revert exclude

* Enabled proper OpenVINOConfig.cmake generation

* Try

* Try
This commit is contained in:
Ilya Lavrenov
2021-11-20 02:27:43 +03:00
committed by GitHub
parent d414b35d75
commit 543ca4f318
14 changed files with 38 additions and 24 deletions

View File

@@ -216,12 +216,12 @@ jobs:
- script: $(INSTALL_DIR)/samples/cpp/build_samples.sh
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build cpp samples'
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
continueOnError: false
- script: $(INSTALL_DIR)/samples/c/build_samples.sh
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build c samples'
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
continueOnError: false
- script: rm -fr $(BUILD_DIR)
displayName: 'Clean build dir'

View File

@@ -111,6 +111,8 @@ jobs:
python -m pip install -r $(REPO_DIR)\model-optimizer\requirements.txt
python -m pip install -r $(REPO_DIR)\model-optimizer\requirements_dev.txt
rem Speed up build
certutil -urlcache -split -f https://github.com/Kitware/CMake/releases/download/v3.22.0/cmake-3.22.0-win64-x64.zip cmake-3.22.0-win64-x64.zip
powershell -command "Expand-Archive -Force cmake-3.22.0-win64-x64.zip"
certutil -urlcache -split -f https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip ninja-win.zip
powershell -command "Expand-Archive -Force ninja-win.zip"
git clone https://github.com/google/gtest-parallel.git
@@ -119,7 +121,7 @@ jobs:
- script: |
set PATH=$(WORK_DIR)\ninja-win;%PATH%
call "$(MSVS_VARS_PATH)" && cmake -GNinja -DENABLE_CLDNN=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GAPI_PREPROCESSING=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
call "$(MSVS_VARS_PATH)" && $(WORK_DIR)\cmake-3.22.0-win64-x64\cmake-3.22.0-win64-x64\bin\cmake.exe -GNinja -DENABLE_GNA=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_CLDNN=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_GAPI_PREPROCESSING=$(CMAKE_BUILD_SHARED_LIBS) -DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) -DENABLE_REQUIREMENTS_INSTALL=OFF -DENABLE_FASTER_BUILD=ON -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DENABLE_TESTS=ON -DENABLE_STRICT_DEPENDENCIES=OFF -DENABLE_PYTHON=ON -DPYTHON_EXECUTABLE="C:\hostedtoolcache\windows\Python\3.7.6\x64\python.exe" -DIE_EXTRA_MODULES=$(OPENVINO_CONTRIB_REPO_DIR)\modules -DCMAKE_C_COMPILER:PATH="$(MSVC_COMPILER_PATH)" -DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" $(REPO_DIR)
workingDirectory: $(BUILD_DIR)
displayName: 'CMake'
@@ -135,14 +137,14 @@ jobs:
- script: dir $(REPO_DIR)\bin\ /s
displayName: 'List bin files'
- script: cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -P cmake_install.cmake
- script: $(WORK_DIR)\cmake-3.22.0-win64-x64\cmake-3.22.0-win64-x64\bin\cmake.exe -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -P cmake_install.cmake
workingDirectory: $(BUILD_DIR)
displayName: 'Install'
- script: dir $(INSTALL_DIR) /s
displayName: 'List install files'
- script: cmake -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCOMPONENT=tests -P cmake_install.cmake && xcopy $(REPO_DIR)\inference-engine\temp\opencv_4.5.2\opencv\* $(INSTALL_DIR)\opencv\ /e /h /y
- script: $(WORK_DIR)\cmake-3.22.0-win64-x64\cmake-3.22.0-win64-x64\bin\cmake.exe -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -DCOMPONENT=tests -P cmake_install.cmake && xcopy $(REPO_DIR)\inference-engine\temp\opencv_4.5.2\opencv\* $(INSTALL_DIR)\opencv\ /e /h /y
workingDirectory: $(BUILD_DIR)
displayName: 'Install tests'
@@ -152,12 +154,12 @@ jobs:
- script: $(INSTALL_DIR)\samples\cpp\build_samples_msvc.bat
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build cpp samples'
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
continueOnError: false
- script: $(INSTALL_DIR)\samples\c\build_samples_msvc.bat
workingDirectory: $(BUILD_SAMPLES_DIR)
displayName: 'Build c samples'
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
continueOnError: false
- script: rd /Q /S $(BUILD_DIR)
displayName: 'Clean build dir'
@@ -195,6 +197,7 @@ jobs:
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\gnaUnitTests --gtest_output=xml:TEST-gnaUnitTests.xml
displayName: 'GNA UT'
continueOnError: false
condition: eq(variables['CMAKE_BUILD_SHARED_LIBS'], 'ON')
- script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\vpuUnitTests --gtest_output=xml:TEST-vpuUnitTests.xml
displayName: 'VPU UT'

View File

@@ -2,7 +2,14 @@
# SPDX-License-Identifier: Apache-2.0
#
cmake_minimum_required(VERSION 3.13)
if(DEFINED BUILD_SHARED_LIBS AND NOT BUILD_SHARED_LIBS)
# 'target_link_libraries' does not work correctly when called from
# different directly where 'add_library' is called: CMake generates
# incorrect OpenVINOConfig.cmake in this case
cmake_minimum_required(VERSION 3.17)
else()
cmake_minimum_required(VERSION 3.13)
endif()
project(OpenVINO DESCRIPTION "OpenVINO toolkit")

View File

@@ -83,9 +83,9 @@ function(ie_add_plugin)
FILEDESCRIPTION "Inference Engine ${IE_PLUGIN_DEVICE_NAME} device plugin library")
if(TARGET IE::inference_engine_plugin_api)
target_link_libraries(${IE_PLUGIN_NAME} PRIVATE IE::inference_engine_plugin_api)
target_link_libraries(${IE_PLUGIN_NAME} PRIVATE IE::inference_engine IE::inference_engine_plugin_api)
else()
target_link_libraries(${IE_PLUGIN_NAME} PRIVATE inference_engine_plugin_api)
target_link_libraries(${IE_PLUGIN_NAME} PRIVATE inference_engine inference_engine_plugin_api)
endif()
if(WIN32)
@@ -108,8 +108,12 @@ function(ie_add_plugin)
endif()
add_dependencies(ie_plugins ${IE_PLUGIN_NAME})
if(TARGET inference_engine_preproc AND BUILD_SHARED_LIBS)
add_dependencies(${IE_PLUGIN_NAME} inference_engine_preproc)
if(TARGET inference_engine_preproc)
if(BUILD_SHARED_LIBS)
add_dependencies(${IE_PLUGIN_NAME} inference_engine_preproc)
else()
target_link_libraries(${IE_PLUGIN_NAME} PRIVATE inference_engine_preproc)
endif()
endif()
# fake dependencies to build in the following order:

View File

@@ -31,7 +31,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Release")
endif()
target_link_libraries(${TARGET_NAME} PRIVATE clDNN_lib pugixml::static
inference_engine
inference_engine_transformations
inference_engine_lp_transformations
ngraph)

View File

@@ -38,7 +38,7 @@ ie_add_plugin(NAME ${TARGET_NAME}
# Enable support of CC for the plugin
ie_mark_target_as_cc(${TARGET_NAME})
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine inference_engine_legacy inference_engine_transformations
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine_legacy inference_engine_transformations
Threads::Threads libGNA)
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})

View File

@@ -16,7 +16,7 @@ ie_faster_build(${TARGET_NAME}
UNITY
)
target_link_libraries(${TARGET_NAME} PRIVATE pugixml::static inference_engine
target_link_libraries(${TARGET_NAME} PRIVATE pugixml::static
ngraph inference_engine_transformations)
ie_add_api_validator_post_build_step(TARGET ${TARGET_NAME})

View File

@@ -17,7 +17,7 @@ ie_add_plugin(NAME ${TARGET_NAME}
PSEUDO_PLUGIN_FOR "MULTI"
DEFAULT_CONFIG "MULTI_WORK_MODE_AS_AUTO:YES")
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine ngraph inference_engine_transformations)
target_link_libraries(${TARGET_NAME} PRIVATE ngraph inference_engine_transformations)
set_ie_threading_interface_for(${TARGET_NAME})

View File

@@ -143,9 +143,9 @@ if(ENABLE_GAPI_PREPROCESSING)
endif()
if(BUILD_SHARED_LIBS)
# for static linkage the dependencies are in opposite order
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine)
else()
# for static linkage the dependencies are in opposite order
target_link_libraries(inference_engine PRIVATE ${TARGET_NAME})
endif()

View File

@@ -45,10 +45,11 @@ if(WIN32)
set_target_properties(${TARGET_NAME} PROPERTIES COMPILE_PDB_NAME ${TARGET_NAME})
endif()
if(NOT BUILD_SHARED_LIBS)
target_link_libraries(inference_engine PRIVATE ${TARGET_NAME})
else()
if(BUILD_SHARED_LIBS)
target_link_libraries(${TARGET_NAME} PRIVATE inference_engine)
else()
# for static linkage the dependencies are in opposite order
target_link_libraries(inference_engine PRIVATE ${TARGET_NAME})
endif()
# code style

View File

@@ -39,7 +39,7 @@ endif()
# "mvnc" must be the first library in the link list
target_link_libraries(${TARGET_NAME}
PRIVATE
mvnc inference_engine inference_engine_legacy vpu_graph_transformer)
mvnc inference_engine_legacy vpu_graph_transformer)
# MyriadPlugin is not safe to unload it at runtime
if(LINUX AND LINUX_OS_NAME MATCHES "Ubuntu")

View File

@@ -176,7 +176,7 @@ fi
# cmake 3.13 or higher is required to build OpenVINO
current_cmake_version=$(cmake --version | sed -ne 's/[^0-9]*\(\([0-9]\.\)\{0,4\}[0-9][^.]\).*/\1/p')
required_cmake_ver=3.13
required_cmake_ver=3.17
if [ ! "$(printf '%s\n' "$required_cmake_ver" "$current_cmake_version" | sort -V | head -n1)" = "$required_cmake_ver" ]; then
wget "https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz"
tar xf cmake-3.18.4.tar.gz

View File

@@ -4,7 +4,7 @@
file(GLOB_RECURSE ENGINES_UTIL_SRC "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
add_library(engines_test_util STATIC ${ENGINES_UTIL_SRC})
add_library(engines_test_util STATIC EXCLUDE_FROM_ALL ${ENGINES_UTIL_SRC})
ie_faster_build(engines_test_util UNITY)

View File

@@ -4,7 +4,7 @@
file(GLOB_RECURSE UTIL_SRC "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
add_library(ngraph_test_util STATIC ${UTIL_SRC})
add_library(ngraph_test_util STATIC EXCLUDE_FROM_ALL ${UTIL_SRC})
ie_faster_build(ngraph_test_util UNITY)