Library versions & made tests relocatable (#12416)

* Fixes for cases when TBB_DIR env var is set

* Don't use make in build_samples.sh script

* First version of Windows installer

* WIndows NSIS installer

* Improved version of debian packages

* Improvements

* Improvements

* Debian packages now look good

* Library versioning

* Fixed tests to run against debian packages

* Fixed frontend tests

* Fixed code style

* FIxed Windows

* Fixed python tests

* Fixed paths in tests

* fdvfdv

* Fixes

* USe versioning only for debian packages

* Relocatable tests

* Fixed

* Fixed all tests

* Fixed clang-format

* Fixed more tests

* Fixed some tests

* Absolute paths in .ci

* Fixes

* Added support of OpenCV 3.4

* Trying to fix gnaUnitTests
This commit is contained in:
Ilya Lavrenov authored and GitHub committed 2022-08-08 13:59:24 +04:00
1 parent b9126fe6ea
commit 6ca47b074d
87 files changed
+803 -712

No files matched your search

@@ -14,7 +14,7 @@ set(CMAKE_MODULE_PATH "${IEDevScripts_DIR}")
function(set_ci_build_number)
set(repo_root "${CMAKE_SOURCE_DIR}")
include(version)
foreach(var CI_BUILD_NUMBER OpenVINO_VERSION OpenVINO_VERSION_BUILD
foreach(var CI_BUILD_NUMBER OpenVINO_VERSION OpenVINO_SOVERSION OpenVINO_VERSION_SUFFIX OpenVINO_VERSION_BUILD
OpenVINO_VERSION_MAJOR OpenVINO_VERSION_MINOR OpenVINO_VERSION_PATCH)
if(NOT DEFINED ${var})
message(FATAL_ERROR "${var} version component is not defined")
@@ -87,7 +87,6 @@ endif()
# Common scripts
#
include(packaging/packaging)
include(coverage/coverage)
include(shellcheck/shellcheck)
@@ -164,13 +163,8 @@ macro(ov_set_if_not_defined var value)
endif()
endmacro()
if(NOT UNIX)
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
else()
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER}/lib)
endif()
ov_set_if_not_defined(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_PDB_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
ov_set_if_not_defined(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_ROOT}/${BIN_FOLDER})
@@ -195,6 +189,8 @@ set(CMAKE_WARN_DEPRECATED OFF CACHE BOOL "Don't warn about obsolete cmake versio
set(CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION ON CACHE BOOL "Warn about absolute paths in destination")
set(CMAKE_SKIP_INSTALL_RPATH ON)
include(packaging/packaging)
# LTO
if(ENABLE_LTO)
@@ -196,13 +196,7 @@ macro(ov_add_frontend)
target_link_libraries(${TARGET_NAME} PUBLIC openvino::runtime)
target_link_libraries(${TARGET_NAME} PRIVATE ${OV_FRONTEND_LINK_LIBRARIES})
# TODO: define proper library version, currently SOVERSION 2022
if(CPACK_GENERATOR STREQUAL "DEB")
set_target_properties(${TARGET_NAME} PROPERTIES
SOVERSION ${OpenVINO_VERSION_MAJOR}
VERSION ${OpenVINO_VERSION})
endif()
ov_add_library_version(${TARGET_NAME})
# WA for TF frontends which always require protobuf (not protobuf-lite)
# if TF FE is built in static mode, use protobuf for all other FEs
@@ -1,6 +1,5 @@
openvino (2022.2.0) unstable; urgency=low
[Ilya Lavrenov]
* Implemented Debian packages support
* Support of Ubuntu 22.04
* Support of python 3.10
@@ -10,7 +9,6 @@ openvino (2022.2.0) unstable; urgency=low
openvino (2022.1.0) unstable; urgency=low
[Ilya Lavrenov]
* Implemented OpenVINO 2.0 Runtime API for both C++ and Python
* Introduced IR v11 which is aligned with frameworks model format
+21 -13
View File
@@ -16,17 +16,18 @@ macro(ov_debian_cpack_set_dirs)
set(OV_CPACK_LIBRARYDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_CPACK_RUNTIMEDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_CPACK_ARCHIVEDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_CPACK_PLUGINSDIR ${CMAKE_INSTALL_LIBDIR}/openvino${OpenVINO_VERSION})
set(OV_CPACK_PLUGINSDIR ${CMAKE_INSTALL_LIBDIR}/openvino-${OpenVINO_VERSION})
set(OV_CPACK_IE_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/inferenceengine${OpenVINO_VERSION})
set(OV_CPACK_NGRAPH_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/ngraph${OpenVINO_VERSION})
set(OV_CPACK_OPENVINO_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/openvino${OpenVINO_VERSION})
set(OV_CPACK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc/openvino${OpenVINO_VERSION})
set(OV_CPACK_DOCDIR ${CMAKE_INSTALL_DATADIR}/doc/openvino-${OpenVINO_VERSION})
# non-native stuff
set(OV_CPACK_PYTHONDIR ${OV_CPACK_PLUGINSDIR})
set(OV_CPACK_SHAREDIR ${CMAKE_INSTALL_DATADIR}/openvino${OpenVINO_VERSION}) # internal
set(OV_CPACK_SHAREDIR ${CMAKE_INSTALL_DATADIR}/openvino-${OpenVINO_VERSION}) # internal
set(OV_CPACK_SAMPLESDIR ${OV_CPACK_SHAREDIR}/samples)
set(OV_CPACK_DEVREQDIR ${OV_CPACK_SHAREDIR})
unset(OV_CPACK_SHAREDIR)
set(OV_CPACK_WHEELSDIR .) # TODO
@@ -88,12 +89,17 @@ macro(ov_debian_specific_settings)
# WA: dpkg-shlibdeps requires folder with libraries
# proper way is to use -l (path to libs) and -L (path to shlibs) for other already installed components
# but it require CMake source code changes
# but it requires CMake source code changes
# with current WA automatic deps detection via dpkg-shlibdeps for "our libraries"
# is ignored; but dependencies between our components are here because of
# CPACK_COMPONENT_<UCOMP>_DEPENDS variables
# More proper WA is try to enable INSTALL_RPATH
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
if(DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS_PRIVATE_DIRS "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
else()
message(FATAL_ERROR "CMAKE_LIBRARY_OUTPUT_DIRECTORY is empty")
endif()
# automatic dependencies discovering between openvino and user packages
set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON)
@@ -103,6 +109,8 @@ macro(ov_debian_specific_settings)
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
# need to update this version once we rebuild the same package with additional fixes
# set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
# enable this if someday we change the version scheme
# set(CPACK_DEBIAN_PACKAGE_EPOCH "2")
endmacro()
ov_debian_specific_settings()
@@ -208,25 +216,25 @@ endfunction()
# ov_debian_generate_conflicts(<comp name>)
#
function(ov_debian_generate_conflicts comp)
set(versions ${ARGN})
set(cpack_name_versions ${ARGN})
string(TOUPPER "${comp}" ucomp)
# sanity check
if(NOT DEFINED CPACK_DEBIAN_${ucomp}_PACKAGE_NAME)
message(FATAL_ERROR "CPACK_DEBIAN_${ucomp}_PACKAGE_NAME is not defined")
else()
if(NOT DEFINED CPACK_PACKAGE_VERSION)
message(FATAL_ERROR "CPACK_PACKAGE_VERSION is not defined")
if(NOT DEFINED cpack_name_ver)
message(FATAL_ERROR "Internal variable 'cpack_name_ver' is not defined")
endif()
string(REPLACE "${CPACK_PACKAGE_VERSION}" "" package_name_base "${CPACK_DEBIAN_${ucomp}_PACKAGE_NAME}")
string(REPLACE "${cpack_name_ver}" "" package_name_base "${CPACK_DEBIAN_${ucomp}_PACKAGE_NAME}")
endif()
foreach(version IN LISTS versions)
foreach(cpack_name_version IN LISTS cpack_name_versions)
if(package_names)
set(package_names "${package_names}, ${package_name_base}${version}")
set(package_names "${package_names}, ${package_name_base}${cpack_name_version}")
else()
set(package_names "${package_name_base}${version}")
set(package_names "${package_name_base}${cpack_name_version}")
endif()
endforeach()
@@ -250,7 +258,7 @@ macro(ov_debian_add_latest_component comp)
# take package name
if(DEFINED CPACK_DEBIAN_${ucomp}_PACKAGE_NAME)
string(REPLACE "-${cpack_ver_mm}" ""
string(REPLACE "-${cpack_name_ver}" ""
CPACK_DEBIAN_${upper_case}_PACKAGE_NAME
"${CPACK_DEBIAN_${ucomp}_PACKAGE_NAME}")
else()
@@ -158,6 +158,10 @@ macro(ie_cpack)
endif()
set(CPACK_PACKAGE_VERSION "${OpenVINO_VERSION}")
if(NOT OpenVINO_VERSION_BUILD STREQUAL "000")
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${OpenVINO_VERSION_BUILD}")
endif()
foreach(ver MAJOR MINOR PATCH)
if(DEFINED OpenVINO_VERSION_${ver})
set(CPACK_PACKAGE_VERSION_${ver} ${OpenVINO_VERSION_${ver}})
+19
View File
@@ -93,7 +93,14 @@ macro(ov_parse_ci_build_number)
endforeach()
endif()
set(OpenVINO_SOVERSION "${OpenVINO_VERSION_MAJOR}${OpenVINO_VERSION_MINOR}${OpenVINO_VERSION_PATCH}")
set(OpenVINO_VERSION "${OpenVINO_VERSION_MAJOR}.${OpenVINO_VERSION_MINOR}.${OpenVINO_VERSION_PATCH}")
# TODO: remove DEB later
if(WIN32 OR NOT CPACK_GENERATOR STREQUAL "DEB")
set(OpenVINO_VERSION_SUFFIX "")
else()
set(OpenVINO_VERSION_SUFFIX ".${OpenVINO_VERSION}")
endif()
message(STATUS "OpenVINO version is ${OpenVINO_VERSION} (Build ${OpenVINO_VERSION_BUILD})")
endmacro()
@@ -131,3 +138,15 @@ macro (addVersionDefines FILE)
endforeach()
unset(__version_file)
endmacro()
function(ov_add_library_version library)
if(CPACK_GENERATOR STREQUAL "DEB")
if(NOT DEFINED OpenVINO_SOVERSION)
message(FATAL_ERROR "Internal error: OpenVINO_SOVERSION is not defined")
endif()
set_target_properties(${library} PROPERTIES
SOVERSION ${OpenVINO_SOVERSION}
VERSION ${OpenVINO_VERSION})
endif()
endfunction()