Used pip wheel to build OpenVINO wheel (#18029)
* Used pip wheel to build OpenVINO wheel * Improvements * Added python api properly into deb / rpm packages * Use cmake -E variant from cmake 3.13 * Improvements to fix CI * Some refactoring * Don't use developer package for scripts projects * Final fixes
This commit is contained in:
parent
1b495e3221
commit
15e69c280a
@ -203,6 +203,7 @@ jobs:
|
|||||||
-DARM_COMPUTE_SCONS_JOBS=$(NUM_PROC) \
|
-DARM_COMPUTE_SCONS_JOBS=$(NUM_PROC) \
|
||||||
-DCMAKE_INSTALL_PREFIX=$(INSTALL_OPENVINO) \
|
-DCMAKE_INSTALL_PREFIX=$(INSTALL_OPENVINO) \
|
||||||
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
|
||||||
|
-DENABLE_PYTHON_PACKAGING=ON \
|
||||||
-S $(OPENVINO_REPO_DIR) \
|
-S $(OPENVINO_REPO_DIR) \
|
||||||
-B $(BUILD_OPENVINO)
|
-B $(BUILD_OPENVINO)
|
||||||
source $(BUILD_OPENVINO)/deactivate_conanbuild.sh
|
source $(BUILD_OPENVINO)/deactivate_conanbuild.sh
|
||||||
|
@ -36,6 +36,7 @@ macro(ov_common_libraries_cpack_set_dirs)
|
|||||||
|
|
||||||
ov_get_pyversion(pyversion)
|
ov_get_pyversion(pyversion)
|
||||||
if(pyversion)
|
if(pyversion)
|
||||||
|
# should not be used in production; only by setup.py install
|
||||||
set(OV_CPACK_PYTHONDIR ${CMAKE_INSTALL_LIBDIR}/${pyversion}/site-packages)
|
set(OV_CPACK_PYTHONDIR ${CMAKE_INSTALL_LIBDIR}/${pyversion}/site-packages)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -107,6 +108,10 @@ macro(ov_define_component_include_rules)
|
|||||||
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
# we don't pack artifacts of setup.py install, because it's called explicitly in conda / brew
|
||||||
|
# or not used at all like in cases with conan / vcpkg
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
# we don't need wheels in package, it's used installed only in open source distribution
|
||||||
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
# tools
|
# tools
|
||||||
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
@ -100,14 +100,16 @@ macro(ov_define_component_include_rules)
|
|||||||
endif()
|
endif()
|
||||||
# python
|
# python
|
||||||
if(ENABLE_PYTHON_PACKAGING)
|
if(ENABLE_PYTHON_PACKAGING)
|
||||||
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
# pack artifacts of setup.py install
|
||||||
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
unset(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
else()
|
else()
|
||||||
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
endif()
|
endif()
|
||||||
|
# we don't pack python components itself, we pack artifacts of setup.py install
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
# we don't need wheels in Debian packages
|
||||||
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
# tools
|
# tools
|
||||||
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
@ -182,9 +184,9 @@ endmacro()
|
|||||||
ov_debian_specific_settings()
|
ov_debian_specific_settings()
|
||||||
|
|
||||||
# needed to override cmake auto generated files
|
# needed to override cmake auto generated files
|
||||||
set(def_postinst "${OpenVINO_BINARY_DIR}/_CPack_Packages/postinst")
|
set(def_postinst "${CMAKE_CURRENT_BINARY_DIR}/_CPack_Packages/postinst")
|
||||||
set(def_postrm "${OpenVINO_BINARY_DIR}/_CPack_Packages/postrm")
|
set(def_postrm "${CMAKE_CURRENT_BINARY_DIR}/_CPack_Packages/postrm")
|
||||||
set(def_triggers "${OpenVINO_BINARY_DIR}/_CPack_Packages/triggers")
|
set(def_triggers "${CMAKE_CURRENT_BINARY_DIR}/_CPack_Packages/triggers")
|
||||||
|
|
||||||
set(triggers_content "activate-noawait ldconfig\n\n")
|
set(triggers_content "activate-noawait ldconfig\n\n")
|
||||||
set(post_content "#!/bin/sh\n\nset -e;\nset -e\n\n")
|
set(post_content "#!/bin/sh\n\nset -e;\nset -e\n\n")
|
||||||
@ -320,7 +322,7 @@ macro(ov_debian_add_latest_component comp)
|
|||||||
set(upper_case "${ucomp}_LATEST")
|
set(upper_case "${ucomp}_LATEST")
|
||||||
|
|
||||||
set(CPACK_COMPONENT_${upper_case}_DESCRIPTION "${CPACK_COMPONENT_${ucomp}_DESCRIPTION}")
|
set(CPACK_COMPONENT_${upper_case}_DESCRIPTION "${CPACK_COMPONENT_${ucomp}_DESCRIPTION}")
|
||||||
set(CPACK_COMPONENT_${upper_case}_ARCHITECTURE "all")
|
set(CPACK_DEBIAN_${upper_case}_PACKAGE_ARCHITECTURE "all")
|
||||||
set(CPACK_COMPONENT_${upper_case}_DEPENDS "${comp}")
|
set(CPACK_COMPONENT_${upper_case}_DEPENDS "${comp}")
|
||||||
set(${comp_name}_copyright "generic")
|
set(${comp_name}_copyright "generic")
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@ macro(ov_define_component_include_rules)
|
|||||||
unset(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL)
|
||||||
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
# tools
|
# tools
|
||||||
unset(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL)
|
||||||
unset(OV_CPACK_COMP_OPENVINO_DEV_REQ_FILES_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_OPENVINO_DEV_REQ_FILES_EXCLUDE_ALL)
|
||||||
|
@ -148,6 +148,7 @@ macro(ov_define_component_names)
|
|||||||
set(OV_CPACK_COMP_PYTHON_IE_API "pyie")
|
set(OV_CPACK_COMP_PYTHON_IE_API "pyie")
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH "pyngraph")
|
set(OV_CPACK_COMP_PYTHON_NGRAPH "pyngraph")
|
||||||
set(OV_CPACK_COMP_PYTHON_OPENVINO "pyopenvino")
|
set(OV_CPACK_COMP_PYTHON_OPENVINO "pyopenvino")
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE "pyopenvino_package")
|
||||||
set(OV_CPACK_COMP_PYTHON_WHEELS "python_wheels")
|
set(OV_CPACK_COMP_PYTHON_WHEELS "python_wheels")
|
||||||
# tools
|
# tools
|
||||||
set(OV_CPACK_COMP_CORE_TOOLS "core_tools")
|
set(OV_CPACK_COMP_CORE_TOOLS "core_tools")
|
||||||
@ -160,6 +161,7 @@ endmacro()
|
|||||||
|
|
||||||
ov_define_component_names()
|
ov_define_component_names()
|
||||||
|
|
||||||
|
# default components for case when CPACK_GENERATOR is not set (i.e. default open source user)
|
||||||
macro(ov_define_component_include_rules)
|
macro(ov_define_component_include_rules)
|
||||||
# core components
|
# core components
|
||||||
unset(OV_CPACK_COMP_CORE_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_CORE_EXCLUDE_ALL)
|
||||||
@ -177,6 +179,9 @@ macro(ov_define_component_include_rules)
|
|||||||
unset(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL)
|
||||||
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
||||||
unset(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL)
|
||||||
|
# TODO: think about python entry points
|
||||||
|
# maybe we can create entry points without python interpreter and use it in debian / rpm as well?
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
# tools
|
# tools
|
||||||
unset(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL)
|
unset(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL)
|
||||||
set(OV_CPACK_COMP_OPENVINO_DEV_REQ_FILES_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_OPENVINO_DEV_REQ_FILES_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
@ -96,14 +96,16 @@ macro(ov_define_component_include_rules)
|
|||||||
endif()
|
endif()
|
||||||
# python
|
# python
|
||||||
if(ENABLE_PYTHON_PACKAGING)
|
if(ENABLE_PYTHON_PACKAGING)
|
||||||
unset(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL)
|
# pack artifacts of setup.py install
|
||||||
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
unset(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
else()
|
else()
|
||||||
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
|
||||||
endif()
|
endif()
|
||||||
|
# we don't pack python components itself, we pack artifacts of setup.py install
|
||||||
|
set(OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
set(OV_CPACK_COMP_PYTHON_IE_API_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
set(OV_CPACK_COMP_PYTHON_NGRAPH_EXCLUDE_ALL ${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL})
|
||||||
|
# we don't need wheels in RPM packages
|
||||||
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_PYTHON_WHEELS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
# tools
|
# tools
|
||||||
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
set(OV_CPACK_COMP_CORE_TOOLS_EXCLUDE_ALL EXCLUDE_FROM_ALL)
|
||||||
|
@ -186,7 +186,7 @@ ie_dependent_option (ENABLE_SYSTEM_SNAPPY "Enables use of system version of Snap
|
|||||||
|
|
||||||
# temporary option until we enable this by default when review python API distribution
|
# temporary option until we enable this by default when review python API distribution
|
||||||
ie_dependent_option (ENABLE_PYTHON_PACKAGING "Enables packaging of Python API in APT / YUM" OFF
|
ie_dependent_option (ENABLE_PYTHON_PACKAGING "Enables packaging of Python API in APT / YUM" OFF
|
||||||
"ENABLE_PYTHON;CPACK_GENERATOR STREQUAL RPM OR CPACK_GENERATOR STREQUAL DEB" OFF)
|
"ENABLE_PYTHON;UNIX" OFF)
|
||||||
|
|
||||||
ie_option(ENABLE_OPENVINO_DEBUG "Enable output for OPENVINO_DEBUG statements" OFF)
|
ie_option(ENABLE_OPENVINO_DEBUG "Enable output for OPENVINO_DEBUG statements" OFF)
|
||||||
|
|
||||||
|
@ -48,10 +48,12 @@ macro(ov_cpack_settings)
|
|||||||
# filter out some components, which are not needed to be wrapped to .deb package
|
# filter out some components, which are not needed to be wrapped to .deb package
|
||||||
if(NOT OV_CPACK_COMP_${UPPER_COMP}_EXCLUDE_ALL AND
|
if(NOT OV_CPACK_COMP_${UPPER_COMP}_EXCLUDE_ALL AND
|
||||||
# skip OpenVINO Python API (pattern in form of "<pyie | pyopenvino | pyngraph>_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
|
# skip OpenVINO Python API (pattern in form of "<pyie | pyopenvino | pyngraph>_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
|
||||||
(NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" OR ENABLE_PYTHON_PACKAGING) AND
|
NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" AND
|
||||||
|
# because in case of .deb package, pyopenvino_package_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} is installed
|
||||||
|
(NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_python.*" OR ENABLE_PYTHON_PACKAGING) AND
|
||||||
# see ticket # 82605
|
# see ticket # 82605
|
||||||
NOT item STREQUAL "gna" AND
|
NOT item STREQUAL "gna" AND
|
||||||
# don't install Intel OpenMP during debian
|
# don't install Intel OpenMP
|
||||||
NOT item STREQUAL "omp" AND
|
NOT item STREQUAL "omp" AND
|
||||||
# even for case of system TBB we have installation rules for wheels packages
|
# even for case of system TBB we have installation rules for wheels packages
|
||||||
# so, need to skip this explicitly
|
# so, need to skip this explicitly
|
||||||
@ -290,7 +292,8 @@ macro(ov_cpack_settings)
|
|||||||
#
|
#
|
||||||
|
|
||||||
set(CPACK_COMPONENT_CORE_DEV_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit C / C++ Development files")
|
set(CPACK_COMPONENT_CORE_DEV_DESCRIPTION "Intel(R) Distribution of OpenVINO(TM) Toolkit C / C++ Development files")
|
||||||
set(CPACK_COMPONENT_CORE_DEV_DEPENDS "${OV_CPACK_COMP_CORE};${frontends}")
|
set(CPACK_COMPONENT_CORE_DEV_DEPENDS "${OV_CPACK_COMP_CORE}")
|
||||||
|
list(APPEND CPACK_COMPONENT_CORE_DEV_DEPENDS ${frontends})
|
||||||
set(CPACK_DEBIAN_CORE_DEV_PACKAGE_NAME "libopenvino-dev-${cpack_name_ver}")
|
set(CPACK_DEBIAN_CORE_DEV_PACKAGE_NAME "libopenvino-dev-${cpack_name_ver}")
|
||||||
ov_debian_generate_conflicts("${OV_CPACK_COMP_CORE_DEV}" ${conflicting_versions})
|
ov_debian_generate_conflicts("${OV_CPACK_COMP_CORE_DEV}" ${conflicting_versions})
|
||||||
set(${OV_CPACK_COMP_CORE_DEV}_copyright "generic")
|
set(${OV_CPACK_COMP_CORE_DEV}_copyright "generic")
|
||||||
@ -301,17 +304,17 @@ macro(ov_cpack_settings)
|
|||||||
|
|
||||||
if(ENABLE_PYTHON_PACKAGING)
|
if(ENABLE_PYTHON_PACKAGING)
|
||||||
ov_get_pyversion(pyversion)
|
ov_get_pyversion(pyversion)
|
||||||
set(python_component "${OV_CPACK_COMP_PYTHON_OPENVINO}_${pyversion}")
|
set(python_component "${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_${pyversion}")
|
||||||
string(TOUPPER "${pyversion}" pyversion)
|
string(TOUPPER "${pyversion}" pyversion)
|
||||||
|
|
||||||
set(CPACK_COMPONENT_PYOPENVINO_${pyversion}_DESCRIPTION "OpenVINO Python API")
|
set(CPACK_COMPONENT_PYOPENVINO_PACKAGE_${pyversion}_DESCRIPTION "OpenVINO Python API")
|
||||||
set(CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS "${OV_CPACK_COMP_CORE}")
|
set(CPACK_COMPONENT_PYOPENVINO_PACKAGE_${pyversion}_DEPENDS "${OV_CPACK_COMP_CORE}")
|
||||||
list(APPEND CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS ${installed_plugins})
|
list(APPEND CPACK_COMPONENT_PYOPENVINO_PACKAGE_${pyversion}_DEPENDS ${installed_plugins})
|
||||||
list(APPEND CPACK_COMPONENT_PYOPENVINO_${pyversion}_DEPENDS ${frontends})
|
list(APPEND CPACK_COMPONENT_PYOPENVINO_PACKAGE_${pyversion}_DEPENDS ${frontends})
|
||||||
|
|
||||||
set(CPACK_DEBIAN_PYOPENVINO_${pyversion}_PACKAGE_NAME "python3-openvino")
|
set(CPACK_DEBIAN_PYOPENVINO_PACKAGE_${pyversion}_PACKAGE_NAME "python3-openvino")
|
||||||
set(python_package "${CPACK_DEBIAN_PYOPENVINO_${pyversion}_PACKAGE_NAME} (= ${cpack_full_ver})")
|
set(python_package "${CPACK_DEBIAN_PYOPENVINO_PACKAGE_${pyversion}_PACKAGE_NAME} (= ${cpack_full_ver})")
|
||||||
set(CPACK_DEBIAN_PYOPENVINO_${pyversion}_PACKAGE_DEPENDS "python3, python3-numpy")
|
set(CPACK_DEBIAN_PYOPENVINO_PACKAGE_${pyversion}_PACKAGE_DEPENDS "python3, python3-numpy")
|
||||||
|
|
||||||
# we can have a single python installed, so we need to generate conflicts for all other versions
|
# we can have a single python installed, so we need to generate conflicts for all other versions
|
||||||
ov_debian_generate_conflicts(${python_component} ${conflicting_versions})
|
ov_debian_generate_conflicts(${python_component} ${conflicting_versions})
|
||||||
@ -324,6 +327,10 @@ macro(ov_cpack_settings)
|
|||||||
"executable-not-elf-or-script"
|
"executable-not-elf-or-script"
|
||||||
# all directories
|
# all directories
|
||||||
"non-standard-dir-perm"
|
"non-standard-dir-perm"
|
||||||
|
# usr/bin/benchmark_app
|
||||||
|
"binary-without-manpage"
|
||||||
|
# usr/bin/benchmark_app
|
||||||
|
"non-standard-executable-perm"
|
||||||
# all python files
|
# all python files
|
||||||
"non-standard-file-perm")
|
"non-standard-file-perm")
|
||||||
set(${python_component}_copyright "generic")
|
set(${python_component}_copyright "generic")
|
||||||
|
@ -31,13 +31,15 @@ macro(ov_cpack_settings)
|
|||||||
unset(CPACK_COMPONENTS_ALL)
|
unset(CPACK_COMPONENTS_ALL)
|
||||||
foreach(item IN LISTS cpack_components_all)
|
foreach(item IN LISTS cpack_components_all)
|
||||||
string(TOUPPER ${item} UPPER_COMP)
|
string(TOUPPER ${item} UPPER_COMP)
|
||||||
# filter out some components, which are not needed to be wrapped to .deb package
|
# filter out some components, which are not needed to be wrapped to .rpm package
|
||||||
if(NOT OV_CPACK_COMP_${UPPER_COMP}_EXCLUDE_ALL AND
|
if(NOT OV_CPACK_COMP_${UPPER_COMP}_EXCLUDE_ALL AND
|
||||||
# skip OpenVINO Python API (pattern in form of "<pyie | pyopenvino | pyngraph>_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
|
# skip OpenVINO Python API (pattern in form of "<pyie | pyopenvino | pyngraph>_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
|
||||||
(NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" OR ENABLE_PYTHON_PACKAGING) AND
|
NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO}_python.*" AND
|
||||||
|
# because in case of .rpm package, pyopenvino_package_python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR} is installed
|
||||||
|
(NOT item MATCHES "^${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_python.*" OR ENABLE_PYTHON_PACKAGING) AND
|
||||||
# see ticket # 82605
|
# see ticket # 82605
|
||||||
NOT item STREQUAL "gna" AND
|
NOT item STREQUAL "gna" AND
|
||||||
# don't install Intel OpenMP during rpm
|
# don't install Intel OpenMP
|
||||||
NOT item STREQUAL "omp" AND
|
NOT item STREQUAL "omp" AND
|
||||||
# even for case of system TBB we have installation rules for wheels packages
|
# even for case of system TBB we have installation rules for wheels packages
|
||||||
# so, need to skip this explicitly
|
# so, need to skip this explicitly
|
||||||
@ -266,14 +268,14 @@ macro(ov_cpack_settings)
|
|||||||
|
|
||||||
if(ENABLE_PYTHON_PACKAGING)
|
if(ENABLE_PYTHON_PACKAGING)
|
||||||
ov_get_pyversion(pyversion)
|
ov_get_pyversion(pyversion)
|
||||||
set(python_component "${OV_CPACK_COMP_PYTHON_OPENVINO}_${pyversion}")
|
set(python_component "${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_${pyversion}")
|
||||||
string(TOUPPER "${pyversion}" pyversion_upper)
|
string(TOUPPER "${pyversion}" pyversion_upper)
|
||||||
|
|
||||||
set(CPACK_COMPONENT_PYOPENVINO_${pyversion_upper}_DESCRIPTION "OpenVINO Python API")
|
set(CPACK_COMPONENT_PYOPENVINO_PACKAGE_${pyversion_upper}_DESCRIPTION "OpenVINO Python API")
|
||||||
set(CPACK_RPM_PYOPENVINO_${pyversion_upper}_PACKAGE_REQUIRES
|
set(CPACK_RPM_PYOPENVINO_PACKAGE_${pyversion_upper}_PACKAGE_REQUIRES
|
||||||
"${core_package}, ${frontend_packages}, ${plugin_packages}, python3, python3-numpy")
|
"${core_package}, ${frontend_packages}, ${plugin_packages}, python3, python3-numpy")
|
||||||
set(CPACK_RPM_PYOPENVINO_${pyversion_upper}_PACKAGE_NAME "python3-openvino")
|
set(CPACK_RPM_PYOPENVINO_PACKAGE_${pyversion_upper}_PACKAGE_NAME "python3-openvino")
|
||||||
set(python_package "${CPACK_RPM_PYOPENVINO_${pyversion_upper}_PACKAGE_NAME} = ${cpack_full_ver}")
|
set(python_package "${CPACK_RPM_PYOPENVINO_PACKAGE_${pyversion_upper}_PACKAGE_NAME} = ${cpack_full_ver}")
|
||||||
set(${python_component}_copyright "generic")
|
set(${python_component}_copyright "generic")
|
||||||
|
|
||||||
# we can have a single python installed, so we need to generate conflicts for all other versions
|
# we can have a single python installed, so we need to generate conflicts for all other versions
|
||||||
|
@ -15,7 +15,7 @@ list(APPEND ov_options CMAKE_CXX_COMPILER_LAUNCHER CMAKE_C_COMPILER_LAUNCHER
|
|||||||
CMAKE_CXX_LINKER_LAUNCHER CMAKE_C_LINKER_LAUNCHER
|
CMAKE_CXX_LINKER_LAUNCHER CMAKE_C_LINKER_LAUNCHER
|
||||||
CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX
|
CMAKE_BUILD_TYPE CMAKE_SKIP_RPATH CMAKE_INSTALL_PREFIX
|
||||||
CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET
|
CMAKE_OSX_ARCHITECTURES CMAKE_OSX_DEPLOYMENT_TARGET
|
||||||
CMAKE_CONFIGURATION_TYPES CMAKE_DEFAULT_BUILD_TYPE)
|
CPACK_GENERATOR)
|
||||||
file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path)
|
file(TO_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}" cache_path)
|
||||||
|
|
||||||
message(STATUS "The following CMake options are exported from OpenVINO Developer package")
|
message(STATUS "The following CMake options are exported from OpenVINO Developer package")
|
||||||
|
@ -5,9 +5,9 @@ pugixml/[>=1.10]
|
|||||||
protobuf/[>=3.20.3]
|
protobuf/[>=3.20.3]
|
||||||
ittapi/[>=3.23.0]
|
ittapi/[>=3.23.0]
|
||||||
zlib/[>=1.2.8]
|
zlib/[>=1.2.8]
|
||||||
opencl-icd-loader/2022.09.30
|
opencl-icd-loader/2023.04.17
|
||||||
opencl-clhpp-headers/2022.09.30
|
opencl-clhpp-headers/2023.04.17
|
||||||
opencl-headers/2022.09.30
|
opencl-headers/2023.04.17
|
||||||
xbyak/[>=6.62]
|
xbyak/[>=6.62]
|
||||||
snappy/[>=1.1.7]
|
snappy/[>=1.1.7]
|
||||||
gflags/2.2.2
|
gflags/2.2.2
|
||||||
@ -24,8 +24,6 @@ flatbuffers/[>=22.9.24]
|
|||||||
|
|
||||||
[options]
|
[options]
|
||||||
protobuf/*:lite=True
|
protobuf/*:lite=True
|
||||||
onetbb/*:tbbmalloc=True
|
|
||||||
onetbb/*:tbbproxy=True
|
|
||||||
flatbuffers/*:header_only=True
|
flatbuffers/*:header_only=True
|
||||||
|
|
||||||
[generators]
|
[generators]
|
||||||
|
@ -160,8 +160,15 @@ if(LINUX)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_VERSION VERSION_LESS 3.15)
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.15)
|
||||||
|
set(SETUP_PY_REQUIREMENTS_FOUND ON)
|
||||||
|
else()
|
||||||
message(${message_mode} "Cmake version 3.15 and higher is required to build 'openvino' wheel. Provided version ${CMAKE_VERSION}")
|
message(${message_mode} "Cmake version 3.15 and higher is required to build 'openvino' wheel. Provided version ${CMAKE_VERSION}")
|
||||||
|
set(SETUP_PY_REQUIREMENTS_FOUND OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT SETUP_PY_REQUIREMENTS_FOUND)
|
||||||
|
# setup.py requirements are importnant to build wheel
|
||||||
set(ENABLE_WHEEL_DEFAULT OFF)
|
set(ENABLE_WHEEL_DEFAULT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -177,6 +184,10 @@ if(NOT ENABLE_PYTHON)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT SETUP_PY_REQUIREMENTS_FOUND AND ENABLE_PYTHON_PACKAGING)
|
||||||
|
message(FATAL_ERROR "Python cannot be packaged, because setup.py requirements are not satisfied (cmake version >= 3.15 is required, provided ${CMAKE_VERSION})")
|
||||||
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build the code
|
# Build the code
|
||||||
#
|
#
|
||||||
@ -196,10 +207,150 @@ else()
|
|||||||
message(WARNING "NOTE: Python API for OpenVINO 1.0 is disabled")
|
message(WARNING "NOTE: Python API for OpenVINO 1.0 is disabled")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Packaging
|
||||||
|
#
|
||||||
|
|
||||||
|
macro(ov_define_setup_py_packaging_vars)
|
||||||
|
# PYTHON_VERSION_MAJOR and PYTHON_VERSION_MINOR are defined inside pybind11
|
||||||
|
set(pyversion python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||||
|
|
||||||
|
# define version (syncronize with tools/openvino_dev/CMakeLists.txt)
|
||||||
|
if(DEFINED ENV{CI_BUILD_DEV_TAG} AND NOT "$ENV{CI_BUILD_DEV_TAG}" STREQUAL "")
|
||||||
|
set(WHEEL_VERSION "${OpenVINO_VERSION}.$ENV{CI_BUILD_DEV_TAG}" CACHE STRING "Version of this release" FORCE)
|
||||||
|
set(wheel_pre_release ON)
|
||||||
|
else()
|
||||||
|
set(WHEEL_VERSION ${OpenVINO_VERSION} CACHE STRING "Version of this release" FORCE)
|
||||||
|
endif()
|
||||||
|
set(WHEEL_BUILD "${OpenVINO_VERSION_BUILD}" CACHE STRING "Build number of this release" FORCE)
|
||||||
|
|
||||||
|
# Common vars used by setup.py
|
||||||
|
set(PY_PACKAGES_DIR ${OV_CPACK_PYTHONDIR})
|
||||||
|
set(TBB_LIBS_DIR runtime/3rdparty/tbb/lib)
|
||||||
|
if(WIN32)
|
||||||
|
set(TBB_LIBS_DIR runtime/3rdparty/tbb/bin)
|
||||||
|
endif()
|
||||||
|
set(PUGIXML_LIBS_DIR runtime/3rdparty/pugixml/lib)
|
||||||
|
|
||||||
|
# define setup.py running environment
|
||||||
|
set(setup_py_env ${CMAKE_COMMAND} -E env
|
||||||
|
# for cross-compilation
|
||||||
|
SETUPTOOLS_EXT_SUFFIX=${PYTHON_MODULE_EXTENSION}
|
||||||
|
# versions
|
||||||
|
WHEEL_VERSION=${WHEEL_VERSION}
|
||||||
|
WHEEL_BUILD=${WHEEL_BUILD}
|
||||||
|
# build locations
|
||||||
|
OPENVINO_BINARY_DIR=${OpenVINO_BINARY_DIR}
|
||||||
|
OPENVINO_PYTHON_BINARY_DIR=${OpenVINOPython_BINARY_DIR}
|
||||||
|
# variables to reflect cpack locations
|
||||||
|
OV_RUNTIME_LIBS_DIR=${OV_WHEEL_RUNTIMEDIR}
|
||||||
|
TBB_LIBS_DIR=${TBB_LIBS_DIR}
|
||||||
|
PUGIXML_LIBS_DIR=${PUGIXML_LIBS_DIR}
|
||||||
|
PY_PACKAGES_DIR=${PY_PACKAGES_DIR})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
macro(ov_define_setup_py_dependencies)
|
||||||
|
foreach(_target
|
||||||
|
# Python API dependencies
|
||||||
|
_pyngraph pyopenvino py_ov_frontends
|
||||||
|
# legacy Python API 1.0 dependencies (remove before 2024.0 release)
|
||||||
|
ie_api constants
|
||||||
|
# plugins
|
||||||
|
ov_plugins
|
||||||
|
# frontends
|
||||||
|
ov_frontends)
|
||||||
|
if(TARGET ${_target})
|
||||||
|
list(APPEND ov_setup_py_deps ${_target})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
file(GLOB_RECURSE compat_ngraph_py_files ${OpenVINOPython_SOURCE_DIR}/src/compatibility/*.py)
|
||||||
|
file(GLOB_RECURSE openvino_py_files ${OpenVINOPython_SOURCE_DIR}/src/openvino/*.py)
|
||||||
|
|
||||||
|
list(APPEND ov_setup_py_deps
|
||||||
|
${openvino_py_files}
|
||||||
|
${compat_ngraph_py_files}
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/wheel/setup.py"
|
||||||
|
"${OpenVINOPython_SOURCE_DIR}/requirements.txt"
|
||||||
|
"${OpenVINOPython_SOURCE_DIR}/wheel/readme.txt"
|
||||||
|
"${OpenVINO_SOURCE_DIR}/LICENSE"
|
||||||
|
"${OpenVINO_SOURCE_DIR}/licensing/onednn_third-party-programs.txt"
|
||||||
|
"${OpenVINO_SOURCE_DIR}/licensing/runtime-third-party-programs.txt"
|
||||||
|
"${OpenVINO_SOURCE_DIR}/licensing/tbb_third-party-programs.txt"
|
||||||
|
"${OpenVINO_SOURCE_DIR}/docs/install_guides/pypi-openvino-rt.md")
|
||||||
|
|
||||||
|
if(wheel_pre_release)
|
||||||
|
list(APPEND ov_setup_py_deps
|
||||||
|
"${OpenVINO_SOURCE_DIR}/docs/install_guides/pre-release-note.md")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
ov_define_setup_py_packaging_vars()
|
||||||
|
ov_define_setup_py_dependencies()
|
||||||
|
|
||||||
if(ENABLE_WHEEL)
|
if(ENABLE_WHEEL)
|
||||||
add_subdirectory(wheel)
|
add_subdirectory(wheel)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target, which creates python install tree for cases of DEB | RPM packages
|
||||||
|
#
|
||||||
|
|
||||||
|
if(ENABLE_PYTHON_PACKAGING)
|
||||||
|
# site-packages depending on package type
|
||||||
|
set(python_xy "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
|
||||||
|
if(CPACK_GENERATOR STREQUAL "DEB")
|
||||||
|
set(python_versioned_folder "python${PYTHON_VERSION_MAJOR}")
|
||||||
|
set(ov_site_packages "dist-packages")
|
||||||
|
elseif(CPACK_GENERATOR STREQUAL "RPM")
|
||||||
|
set(python_versioned_folder "python${python_xy}")
|
||||||
|
set(ov_site_packages "site-packages")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(python_package_prefix "${CMAKE_CURRENT_BINARY_DIR}/install_${pyversion}")
|
||||||
|
set(install_lib "${python_package_prefix}/lib/${python_versioned_folder}/${ov_site_packages}")
|
||||||
|
set(meta_info_subdir "openvino-${OpenVINO_VERSION}-py${python_xy}.egg-info")
|
||||||
|
set(meta_info_file "${install_lib}/${meta_info_subdir}/PKG-INFO")
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${meta_info_file}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove_directory
|
||||||
|
"${python_package_prefix}"
|
||||||
|
COMMAND ${setup_py_env}
|
||||||
|
"${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/wheel/setup.py"
|
||||||
|
--no-user-cfg
|
||||||
|
--quiet
|
||||||
|
build
|
||||||
|
--python-extensions-only
|
||||||
|
--executable "/usr/bin/python3"
|
||||||
|
build_ext
|
||||||
|
--skip-rpath
|
||||||
|
install
|
||||||
|
--no-compile
|
||||||
|
--prefix "${python_package_prefix}"
|
||||||
|
--install-lib "${install_lib}"
|
||||||
|
--install-scripts "${python_package_prefix}/bin"
|
||||||
|
# --single-version-externally-managed
|
||||||
|
# --record=installed.txt
|
||||||
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
DEPENDS ${ov_setup_py_deps}
|
||||||
|
COMMENT "Create python package with ${meta_info_subdir} folder")
|
||||||
|
|
||||||
|
add_custom_target(_python_api_package ALL DEPENDS ${meta_info_file})
|
||||||
|
|
||||||
|
# install python package, which will be later packed into DEB | RPM
|
||||||
|
ov_cpack_add_component(${OV_CPACK_COMP_PYTHON_NGRAPH}_package_${pyversion} HIDDEN)
|
||||||
|
|
||||||
|
install(DIRECTORY ${python_package_prefix}/
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}
|
||||||
|
COMPONENT ${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE}_${pyversion}
|
||||||
|
${OV_CPACK_COMP_PYTHON_OPENVINO_PACKAGE_EXCLUDE_ALL}
|
||||||
|
USE_SOURCE_PERMISSIONS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Tests
|
||||||
|
#
|
||||||
|
|
||||||
if(ENABLE_TESTS)
|
if(ENABLE_TESTS)
|
||||||
add_subdirectory(tests/mock/mock_py_frontend)
|
add_subdirectory(tests/mock/mock_py_frontend)
|
||||||
add_subdirectory(tests/mock/pyngraph_fe_mock_api)
|
add_subdirectory(tests/mock/pyngraph_fe_mock_api)
|
||||||
|
@ -2,58 +2,6 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
|
||||||
# define version (syncronize with tools/openvino_dev/CMakeLists.txt)
|
|
||||||
|
|
||||||
if(DEFINED ENV{CI_BUILD_DEV_TAG} AND NOT "$ENV{CI_BUILD_DEV_TAG}" STREQUAL "")
|
|
||||||
set(WHEEL_VERSION "${OpenVINO_VERSION}.$ENV{CI_BUILD_DEV_TAG}" CACHE STRING "Version of this release" FORCE)
|
|
||||||
set(wheel_pre_release ON)
|
|
||||||
else()
|
|
||||||
set(WHEEL_VERSION ${OpenVINO_VERSION} CACHE STRING "Version of this release" FORCE)
|
|
||||||
endif()
|
|
||||||
set(WHEEL_BUILD "${OpenVINO_VERSION_BUILD}" CACHE STRING "Build number of this release" FORCE)
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Common vars used by setup.py
|
|
||||||
#
|
|
||||||
|
|
||||||
set(PY_PACKAGES_DIR ${OV_CPACK_PYTHONDIR})
|
|
||||||
set(TBB_LIBS_DIR runtime/3rdparty/tbb/lib)
|
|
||||||
if(WIN32)
|
|
||||||
set(TBB_LIBS_DIR runtime/3rdparty/tbb/bin)
|
|
||||||
endif()
|
|
||||||
set(PUGIXML_LIBS_DIR runtime/3rdparty/pugixml/lib)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Dependencies
|
|
||||||
#
|
|
||||||
|
|
||||||
foreach(_target ie_api constants _pyngraph openvino_c pyopenvino ov_plugins ov_frontends py_ov_frontends)
|
|
||||||
if(TARGET ${_target})
|
|
||||||
list(APPEND openvino_wheel_deps ${_target})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
file(GLOB_RECURSE compat_ngraph_py_files ${OpenVINOPython_SOURCE_DIR}/src/compatibility/*.py)
|
|
||||||
file(GLOB_RECURSE openvino_py_files ${OpenVINOPython_SOURCE_DIR}/src/openvino/*.py)
|
|
||||||
|
|
||||||
list(APPEND openvino_wheel_deps
|
|
||||||
${openvino_py_files}
|
|
||||||
${compat_ngraph_py_files}
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/setup.py"
|
|
||||||
"${OpenVINOPython_SOURCE_DIR}/requirements.txt"
|
|
||||||
"${OpenVINOPython_SOURCE_DIR}/wheel/readme.txt"
|
|
||||||
"${OpenVINO_SOURCE_DIR}/LICENSE"
|
|
||||||
"${OpenVINO_SOURCE_DIR}/licensing/onednn_third-party-programs.txt"
|
|
||||||
"${OpenVINO_SOURCE_DIR}/licensing/runtime-third-party-programs.txt"
|
|
||||||
"${OpenVINO_SOURCE_DIR}/licensing/tbb_third-party-programs.txt"
|
|
||||||
"${OpenVINO_SOURCE_DIR}/docs/install_guides/pypi-openvino-rt.md")
|
|
||||||
|
|
||||||
if(wheel_pre_release)
|
|
||||||
list(APPEND openvino_wheel_deps
|
|
||||||
"${OpenVINO_SOURCE_DIR}/docs/install_guides/pre-release-note.md")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Define proper package name
|
# Define proper package name
|
||||||
#
|
#
|
||||||
@ -138,33 +86,38 @@ set(openvino_wheel_path "${openvino_wheels_output_dir}/${openvino_wheel_name}")
|
|||||||
# create target for openvino.wheel
|
# create target for openvino.wheel
|
||||||
#
|
#
|
||||||
|
|
||||||
set(wheel_env ${CMAKE_COMMAND} -E env
|
execute_process(COMMAND ${PYTHON_EXECUTABLE} -m pip --version
|
||||||
SETUPTOOLS_EXT_SUFFIX=${PYTHON_MODULE_EXTENSION}
|
OUTPUT_VARIABLE pip_version OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
WHEEL_VERSION=${WHEEL_VERSION}
|
|
||||||
WHEEL_BUILD=${WHEEL_BUILD}
|
|
||||||
OPENVINO_BUILD_DIR=${OpenVINO_BINARY_DIR}
|
|
||||||
OPENVINO_PYTHON_BUILD_DIR=${OpenVINOPython_BINARY_DIR}
|
|
||||||
OV_RUNTIME_LIBS_DIR=${OV_WHEEL_RUNTIMEDIR}
|
|
||||||
TBB_LIBS_DIR=${TBB_LIBS_DIR}
|
|
||||||
PUGIXML_LIBS_DIR=${PUGIXML_LIBS_DIR}
|
|
||||||
PY_PACKAGES_DIR=${PY_PACKAGES_DIR})
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${openvino_wheel_path}
|
string(REGEX MATCH "pip[ ]+([\\.0-9]*)" pip_version "${pip_version}")
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
|
set(pip_version ${CMAKE_MATCH_1})
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${OpenVINO_SOURCE_DIR}/licensing" "${CMAKE_BINARY_DIR}/licensing"
|
|
||||||
COMMAND ${wheel_env}
|
if(pip_version VERSION_GREATER_EQUAL 22.0)
|
||||||
|
set(wheel_build_command
|
||||||
|
${PYTHON_EXECUTABLE} -m pip wheel
|
||||||
|
--no-deps
|
||||||
|
--wheel-dir ${openvino_wheels_output_dir}
|
||||||
|
# --verbose
|
||||||
|
--build-option --build-number=${WHEEL_BUILD}
|
||||||
|
--build-option --plat-name=${PLATFORM_TAG}
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}")
|
||||||
|
else()
|
||||||
|
set(wheel_build_command
|
||||||
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/setup.py"
|
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/setup.py"
|
||||||
--quiet
|
--quiet
|
||||||
--no-user-cfg
|
--no-user-cfg
|
||||||
bdist_wheel
|
bdist_wheel
|
||||||
--dist-dir ${openvino_wheels_output_dir}
|
--dist-dir ${openvino_wheels_output_dir}
|
||||||
--build-number=${WHEEL_BUILD}
|
--build-number=${WHEEL_BUILD}
|
||||||
--plat-name=${PLATFORM_TAG}
|
--plat-name=${PLATFORM_TAG})
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/site-packages"
|
endif()
|
||||||
COMMAND ${wheel_env}
|
|
||||||
${PYTHON_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/setup.py" clean
|
add_custom_command(OUTPUT ${openvino_wheel_path}
|
||||||
DEPENDS ${openvino_wheel_deps}
|
COMMAND ${setup_py_env}
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
${wheel_build_command}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR}/build_${pyversion}"
|
||||||
|
DEPENDS ${ov_setup_py_deps}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
COMMENT "Building Python wheel ${openvino_wheel_name}"
|
COMMENT "Building Python wheel ${openvino_wheel_name}"
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
|
||||||
@ -176,6 +129,7 @@ add_custom_command(OUTPUT "${fdupes_report}"
|
|||||||
-D WHEEL_VERSION=${WHEEL_VERSION}
|
-D WHEEL_VERSION=${WHEEL_VERSION}
|
||||||
-D PACKAGE_FILE=${openvino_wheel_path}
|
-D PACKAGE_FILE=${openvino_wheel_path}
|
||||||
-D REPORT_FILE=${fdupes_report}
|
-D REPORT_FILE=${fdupes_report}
|
||||||
|
-D CMAKE_SHARED_LIBRARY_SUFFIX=${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/fdupes_check.cmake"
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/fdupes_check.cmake"
|
||||||
DEPENDS "${openvino_wheel_path}"
|
DEPENDS "${openvino_wheel_path}"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
#
|
#
|
||||||
|
|
||||||
foreach(var PYTHON_EXECUTABLE WORKING_DIRECTORY REPORT_FILE WHEEL_VERSION PACKAGE_FILE)
|
foreach(var PYTHON_EXECUTABLE WORKING_DIRECTORY REPORT_FILE WHEEL_VERSION PACKAGE_FILE CMAKE_SHARED_LIBRARY_SUFFIX)
|
||||||
if(NOT DEFINED ${var})
|
if(NOT DEFINED ${var})
|
||||||
message(FATAL_ERROR "Variable ${var} is not defined")
|
message(FATAL_ERROR "Variable ${var} is not defined")
|
||||||
endif()
|
endif()
|
||||||
@ -37,7 +37,7 @@ if(NOT EXISTS "${WORKING_DIRECTORY}")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
execute_process(COMMAND ${fdupes_PROGRAM} -f -r "${WORKING_DIRECTORY}"
|
execute_process(COMMAND ${fdupes_PROGRAM} -f -r "${WORKING_DIRECTORY}"
|
||||||
OUTPUT_VARIABLE output_message
|
OUTPUT_VARIABLE duplicated_files
|
||||||
ERROR_VARIABLE error_message
|
ERROR_VARIABLE error_message
|
||||||
RESULT_VARIABLE exit_code
|
RESULT_VARIABLE exit_code
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
@ -45,10 +45,18 @@ execute_process(COMMAND ${fdupes_PROGRAM} -f -r "${WORKING_DIRECTORY}"
|
|||||||
# remove unpacked directory
|
# remove unpacked directory
|
||||||
file(REMOVE_RECURSE "${WORKING_DIRECTORY}")
|
file(REMOVE_RECURSE "${WORKING_DIRECTORY}")
|
||||||
|
|
||||||
|
# filtering of 'duplicated_files'
|
||||||
|
|
||||||
|
foreach(duplicated_file IN LISTS duplicated_files)
|
||||||
|
if(duplicated_file MATCHES ".*${CMAKE_SHARED_LIBRARY_SUFFIX}.*")
|
||||||
|
set(duplicated_libraries "${duplicated_file}\n${duplicated_libraries}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
# write output
|
# write output
|
||||||
|
|
||||||
file(WRITE "${REPORT_FILE}" "${output_message}")
|
file(WRITE "${REPORT_FILE}" "${duplicated_libraries}")
|
||||||
|
|
||||||
if(output_message)
|
if(duplicated_libraries)
|
||||||
message(FATAL_ERROR "${output_message}")
|
message(FATAL_ERROR "${duplicated_libraries}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
license_files =
|
license_files =
|
||||||
readme*
|
readme.txt
|
||||||
*LICENSE*
|
|
||||||
*license*
|
|
||||||
*third-party-programs*
|
|
||||||
../../../../licensing/runtime-third-party-programs.txt
|
../../../../licensing/runtime-third-party-programs.txt
|
||||||
../../../../licensing/tbb_third-party-programs.txt
|
../../../../licensing/tbb_third-party-programs.txt
|
||||||
../../../../licensing/onednn_third-party-programs.txt
|
../../../../licensing/onednn_third-party-programs.txt
|
||||||
../../../../LICENSE
|
../../../../LICENSE
|
||||||
|
|
||||||
|
@ -43,9 +43,10 @@ elif machine == "aarch64" or machine == "arm64" or machine == "ARM64":
|
|||||||
# The following variables can be defined in environment or .env file
|
# The following variables can be defined in environment or .env file
|
||||||
SCRIPT_DIR = Path(__file__).resolve().parents[0]
|
SCRIPT_DIR = Path(__file__).resolve().parents[0]
|
||||||
WORKING_DIR = Path.cwd()
|
WORKING_DIR = Path.cwd()
|
||||||
|
BUILD_BASE = f"{WORKING_DIR}/build_{PYTHON_VERSION}"
|
||||||
OPENVINO_SOURCE_DIR = SCRIPT_DIR.parents[3]
|
OPENVINO_SOURCE_DIR = SCRIPT_DIR.parents[3]
|
||||||
OPENVINO_BUILD_DIR = os.getenv("OPENVINO_BUILD_DIR")
|
OPENVINO_BINARY_DIR = os.getenv("OPENVINO_BINARY_DIR")
|
||||||
OPENVINO_PYTHON_BUILD_DIR = os.getenv("OPENVINO_PYTHON_BUILD_DIR", OPENVINO_BUILD_DIR)
|
OPENVINO_PYTHON_BINARY_DIR = os.getenv("OPENVINO_PYTHON_BINARY_DIR", "python_build")
|
||||||
OV_RUNTIME_LIBS_DIR = os.getenv("OV_RUNTIME_LIBS_DIR", f"runtime/{LIBS_DIR}/{ARCH}/{CONFIG}")
|
OV_RUNTIME_LIBS_DIR = os.getenv("OV_RUNTIME_LIBS_DIR", f"runtime/{LIBS_DIR}/{ARCH}/{CONFIG}")
|
||||||
TBB_LIBS_DIR = os.getenv("TBB_LIBS_DIR", f"runtime/3rdparty/tbb/{LIBS_DIR}")
|
TBB_LIBS_DIR = os.getenv("TBB_LIBS_DIR", f"runtime/3rdparty/tbb/{LIBS_DIR}")
|
||||||
PUGIXML_LIBS_DIR = os.getenv("PUGIXML_LIBS_DIR", f"runtime/3rdparty/pugixml/{LIBS_DIR}")
|
PUGIXML_LIBS_DIR = os.getenv("PUGIXML_LIBS_DIR", f"runtime/3rdparty/pugixml/{LIBS_DIR}")
|
||||||
@ -55,122 +56,149 @@ LIBS_RPATH = "$ORIGIN" if sys.platform == "linux" else "@loader_path"
|
|||||||
LIB_INSTALL_CFG = {
|
LIB_INSTALL_CFG = {
|
||||||
"ie_libs": {
|
"ie_libs": {
|
||||||
"name": "core",
|
"name": "core",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.core",
|
"prefix": f"{BUILD_BASE}/libs.core",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"hetero_plugin": {
|
"hetero_plugin": {
|
||||||
"name": "hetero",
|
"name": "hetero",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.hetero",
|
"prefix": f"{BUILD_BASE}/libs.hetero",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"gpu_plugin": {
|
"gpu_plugin": {
|
||||||
"name": "gpu",
|
"name": "gpu",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.gpu",
|
"prefix": f"{BUILD_BASE}/libs.gpu",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"cpu_plugin": {
|
"cpu_plugin": {
|
||||||
"name": "cpu",
|
"name": "cpu",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.cpu",
|
"prefix": f"{BUILD_BASE}/libs.cpu",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"multi_plugin": {
|
"multi_plugin": {
|
||||||
"name": "multi",
|
"name": "multi",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.multi",
|
"prefix": f"{BUILD_BASE}/libs.multi",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"batch_plugin": {
|
"batch_plugin": {
|
||||||
"name": "batch",
|
"name": "batch",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.batch",
|
"prefix": f"{BUILD_BASE}/libs.batch",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"tbb_libs": {
|
"tbb_libs": {
|
||||||
"name": "tbb",
|
"name": "tbb",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.tbb",
|
"prefix": f"{BUILD_BASE}/libs.tbb",
|
||||||
"install_dir": TBB_LIBS_DIR,
|
"install_dir": TBB_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"pugixml_libs": {
|
"pugixml_libs": {
|
||||||
"name": "pugixml",
|
"name": "pugixml",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.pugixml",
|
"prefix": f"{BUILD_BASE}/libs.pugixml",
|
||||||
"install_dir": PUGIXML_LIBS_DIR,
|
"install_dir": PUGIXML_LIBS_DIR,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"ir_libs": {
|
"ir_libs": {
|
||||||
"name": "ir",
|
"name": "ir",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.ir",
|
"prefix": f"{BUILD_BASE}/libs.ir",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"paddle_libs": {
|
"paddle_libs": {
|
||||||
"name": "paddle",
|
"name": "paddle",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.paddle",
|
"prefix": f"{BUILD_BASE}/libs.paddle",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"pytorch_libs": {
|
"pytorch_libs": {
|
||||||
"name": "pytorch",
|
"name": "pytorch",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.pytorch",
|
"prefix": f"{BUILD_BASE}/libs.pytorch",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"onnx_libs": {
|
"onnx_libs": {
|
||||||
"name": "onnx",
|
"name": "onnx",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.onnx",
|
"prefix": f"{BUILD_BASE}/libs.onnx",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"tensorflow_libs": {
|
"tensorflow_libs": {
|
||||||
"name": "tensorflow",
|
"name": "tensorflow",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.tensorflow",
|
"prefix": f"{BUILD_BASE}/libs.tensorflow",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"tensorflow_lite_libs": {
|
"tensorflow_lite_libs": {
|
||||||
"name": "tensorflow_lite",
|
"name": "tensorflow_lite",
|
||||||
"prefix": f"{WORKING_DIR}/build/libs.tensorflow_lite",
|
"prefix": f"{BUILD_BASE}/libs.tensorflow_lite",
|
||||||
"install_dir": OV_RUNTIME_LIBS_DIR,
|
"install_dir": OV_RUNTIME_LIBS_DIR,
|
||||||
"rpath": LIBS_RPATH,
|
"rpath": LIBS_RPATH,
|
||||||
"binary_dir": OPENVINO_BUILD_DIR,
|
"binary_dir": OPENVINO_BINARY_DIR,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
PY_INSTALL_CFG = {
|
PY_INSTALL_CFG = {
|
||||||
"pyie": {
|
"pyie": {
|
||||||
"name": f"pyie_{PYTHON_VERSION}",
|
"name": f"pyie_{PYTHON_VERSION}",
|
||||||
"prefix": f"{WORKING_DIR}/build/site-packages",
|
"prefix": f"{BUILD_BASE}/site-packages",
|
||||||
|
"source_dir": f"{OPENVINO_SOURCE_DIR}/src/bindings/python",
|
||||||
"install_dir": PY_PACKAGES_DIR,
|
"install_dir": PY_PACKAGES_DIR,
|
||||||
"binary_dir": OPENVINO_PYTHON_BUILD_DIR,
|
"binary_dir": OPENVINO_PYTHON_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"pyngraph": {
|
"pyngraph": {
|
||||||
"name": f"pyngraph_{PYTHON_VERSION}",
|
"name": f"pyngraph_{PYTHON_VERSION}",
|
||||||
"prefix": f"{WORKING_DIR}/build/site-packages",
|
"prefix": f"{BUILD_BASE}/site-packages",
|
||||||
|
"source_dir": f"{OPENVINO_SOURCE_DIR}/src/bindings/python",
|
||||||
"install_dir": PY_PACKAGES_DIR,
|
"install_dir": PY_PACKAGES_DIR,
|
||||||
"binary_dir": OPENVINO_PYTHON_BUILD_DIR,
|
"binary_dir": OPENVINO_PYTHON_BINARY_DIR,
|
||||||
},
|
},
|
||||||
"pyopenvino": {
|
"pyopenvino": {
|
||||||
"name": f"pyopenvino_{PYTHON_VERSION}",
|
"name": f"pyopenvino_{PYTHON_VERSION}",
|
||||||
"prefix": f"{WORKING_DIR}/build/site-packages",
|
"prefix": f"{BUILD_BASE}/site-packages",
|
||||||
|
"source_dir": f"{OPENVINO_SOURCE_DIR}/src/bindings/python",
|
||||||
"install_dir": PY_PACKAGES_DIR,
|
"install_dir": PY_PACKAGES_DIR,
|
||||||
"binary_dir": OPENVINO_PYTHON_BUILD_DIR,
|
"binary_dir": OPENVINO_PYTHON_BINARY_DIR,
|
||||||
},
|
},
|
||||||
|
"benchmark_app": {
|
||||||
|
"entry_point": {
|
||||||
|
"console_scripts": [
|
||||||
|
"benchmark_app = openvino.tools.benchmark.main:main",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
"name": f"pyopenvino_{PYTHON_VERSION}",
|
||||||
|
"prefix": f"{BUILD_BASE}/site-packages",
|
||||||
|
"source_dir": f"{OPENVINO_SOURCE_DIR}/tools/benchmark_tool",
|
||||||
|
"install_dir": PY_PACKAGES_DIR,
|
||||||
|
"binary_dir": "benchmark_app",
|
||||||
|
},
|
||||||
|
# "model_optimizer": { # noqa: E731
|
||||||
|
# "entry_point": { # noqa: E731
|
||||||
|
# "console_scripts": [ # noqa: E731
|
||||||
|
# "mo = openvino.tools.mo.main:main", # noqa: E731
|
||||||
|
# ], # noqa: E731
|
||||||
|
# }, # noqa: E731
|
||||||
|
# "name": f"pyopenvino_{PYTHON_VERSION}", # noqa: E731
|
||||||
|
# "prefix": f"{BUILD_BASE}/site-packages", # noqa: E731
|
||||||
|
# "source_dir": f"{OPENVINO_SOURCE_DIR}/tools/mo", # noqa: E731
|
||||||
|
# "install_dir": PY_PACKAGES_DIR, # noqa: E731
|
||||||
|
# "binary_dir": "model_optimizer", # noqa: E731
|
||||||
|
# }, # noqa: E731
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -187,80 +215,88 @@ class PrebuiltExtension(Extension):
|
|||||||
class CustomBuild(build):
|
class CustomBuild(build):
|
||||||
"""Custom implementation of build_clib."""
|
"""Custom implementation of build_clib."""
|
||||||
|
|
||||||
cmake_build_types = ["Release", "Debug", "RelWithDebInfo", "MinSizeRel"]
|
user_options = build.user_options + [
|
||||||
user_options = [
|
|
||||||
("config=", None, "Build configuration [{types}].".format(types="|".join(cmake_build_types))),
|
|
||||||
("jobs=", None, "Specifies the number of jobs to use with make."),
|
("jobs=", None, "Specifies the number of jobs to use with make."),
|
||||||
("cmake-args=", None, "Additional options to be passed to CMake."),
|
("cmake-args=", None, "Additional options to be passed to CMake."),
|
||||||
|
("python-extensions-only", None, "Install Python extensions without C++ libraries."),
|
||||||
]
|
]
|
||||||
|
boolean_options = build.boolean_options + ['python-extensions-only']
|
||||||
|
|
||||||
def initialize_options(self):
|
def initialize_options(self):
|
||||||
"""Set default values for all the options that this command supports."""
|
"""Set default values for all the options that this command supports."""
|
||||||
super().initialize_options()
|
super().initialize_options()
|
||||||
self.build_base = "build"
|
self.build_base = BUILD_BASE
|
||||||
self.config = None
|
|
||||||
self.jobs = None
|
self.jobs = None
|
||||||
self.cmake_args = None
|
self.cmake_args = None
|
||||||
|
self.python_extensions_only = False
|
||||||
|
|
||||||
def finalize_options(self):
|
def finalize_options(self):
|
||||||
"""Set final values for all the options that this command supports."""
|
"""Set final values for all the options that this command supports."""
|
||||||
super().finalize_options()
|
super().finalize_options()
|
||||||
|
|
||||||
if not self.config:
|
|
||||||
if self.debug:
|
|
||||||
self.config = "Debug"
|
|
||||||
else:
|
|
||||||
self.announce("Set default value for CMAKE_BUILD_TYPE = Release.", level=4)
|
|
||||||
self.config = "Release"
|
|
||||||
else:
|
|
||||||
build_types = [item.lower() for item in self.cmake_build_types]
|
|
||||||
try:
|
|
||||||
i = build_types.index(str(self.config).lower())
|
|
||||||
self.config = self.cmake_build_types[i]
|
|
||||||
self.debug = True if "Debug" == self.config else False
|
|
||||||
except ValueError:
|
|
||||||
self.announce("Unsupported CMAKE_BUILD_TYPE value: " + self.config, level=4)
|
|
||||||
self.announce("Supported values: {types}".format(types=", ".join(self.cmake_build_types)), level=4)
|
|
||||||
sys.exit(1)
|
|
||||||
if self.jobs is None and os.getenv("MAX_JOBS") is not None:
|
if self.jobs is None and os.getenv("MAX_JOBS") is not None:
|
||||||
self.jobs = os.getenv("MAX_JOBS")
|
self.jobs = os.getenv("MAX_JOBS")
|
||||||
self.jobs = multiprocessing.cpu_count() if self.jobs is None else int(self.jobs)
|
self.jobs = multiprocessing.cpu_count() if self.jobs is None else int(self.jobs)
|
||||||
|
|
||||||
def run(self):
|
if self.cmake_args is None:
|
||||||
global OPENVINO_BUILD_DIR
|
self.cmake_args = ""
|
||||||
self.jobs = multiprocessing.cpu_count()
|
|
||||||
|
def cmake_build_and_install(self, install_cfg):
|
||||||
|
"""Runs cmake (configure, build and install) if artfiacts are not already built / installed."""
|
||||||
plat_specifier = ".{0}-{1}.{2}".format(self.plat_name, *sys.version_info[:2])
|
plat_specifier = ".{0}-{1}.{2}".format(self.plat_name, *sys.version_info[:2])
|
||||||
self.build_temp = os.path.join(self.build_base, "temp" + plat_specifier, self.config)
|
self.build_temp = os.path.join(self.build_base, "temp" + plat_specifier)
|
||||||
self.announce(f"Create build directory: {self.build_temp}", level=3)
|
self.announce(f"Create build directory: {self.build_temp}", level=3)
|
||||||
|
|
||||||
# if setup.py is directly called use CMake to build product
|
# build some components which have not been built yet
|
||||||
if OPENVINO_BUILD_DIR == ".":
|
for comp, comp_data in install_cfg.items():
|
||||||
# set path to the root of OpenVINO CMakeList file
|
cpack_comp_name = comp_data.get("name")
|
||||||
self.announce(f"Configuring cmake project: {OPENVINO_SOURCE_DIR}", level=3)
|
source_dir = comp_data.get("source_dir")
|
||||||
self.spawn(["cmake", "-S" + str(OPENVINO_SOURCE_DIR),
|
binary_dir = comp_data.get("binary_dir")
|
||||||
"-B" + self.build_temp,
|
install_dir = comp_data.get("install_dir")
|
||||||
self.cmake_args,
|
prefix = comp_data.get("prefix")
|
||||||
"-DCMAKE_BUILD_TYPE={type}".format(type=self.config),
|
|
||||||
"-DENABLE_PYTHON=ON",
|
|
||||||
"-DBUILD_SHARED_LIBS=ON"
|
|
||||||
"-DENABLE_WHEEL=OFF",
|
|
||||||
"-DENABLE_NCC_STYLE=OFF",
|
|
||||||
"-DENABLE_CPPLINT=OFF",
|
|
||||||
"-DENABLE_TEMPLATE=OFF",
|
|
||||||
"-DENABLE_COMPILE_TOOL=OFF"
|
|
||||||
"-DENABLE_SAMPLES=OFF"])
|
|
||||||
|
|
||||||
self.announce("Building binaries", level=3)
|
# perform installation steps if we are not given a full path
|
||||||
self.spawn(["cmake", "--build", self.build_temp,
|
if not os.path.isabs(install_dir):
|
||||||
"--config", self.config,
|
# install_dir is just a sub-dir after install prefix, let's make a full path
|
||||||
"--parallel", str(self.jobs)])
|
comp_data["install_dir"] = os.path.join(prefix, install_dir)
|
||||||
OPENVINO_BUILD_DIR = self.build_temp
|
|
||||||
# perform installation
|
|
||||||
self.run_command("build_clib")
|
|
||||||
|
|
||||||
build.run(self)
|
# even perform a build in case of binary directory does not exist
|
||||||
|
binary_dir = binary_dir if os.path.isabs(binary_dir) else os.path.join(self.build_temp, binary_dir)
|
||||||
|
if not os.path.exists(binary_dir):
|
||||||
|
binary_dir = os.path.join(self.build_temp, binary_dir)
|
||||||
|
self.announce(f"Configuring {comp} cmake project", level=3)
|
||||||
|
self.spawn(["cmake", f"-DOpenVINODeveloperPackage_DIR={OPENVINO_BINARY_DIR}",
|
||||||
|
"-DCMAKE_BUILD_TYPE=Release",
|
||||||
|
"-DENABLE_WHEEL=OFF",
|
||||||
|
self.cmake_args,
|
||||||
|
"-S", source_dir,
|
||||||
|
"-B", binary_dir])
|
||||||
|
|
||||||
# Copy extra package_data content filtered by 'copy_package_data'
|
self.announce(f"Building {comp} project", level=3)
|
||||||
|
self.spawn(["cmake", "--build", binary_dir,
|
||||||
|
"--config", "Release",
|
||||||
|
"--parallel", str(self.jobs)])
|
||||||
|
|
||||||
|
self.announce(f"Installing {comp}", level=3)
|
||||||
|
self.spawn(["cmake", "--install", binary_dir,
|
||||||
|
"--prefix", prefix,
|
||||||
|
"--config", "Release",
|
||||||
|
"--strip",
|
||||||
|
"--component", cpack_comp_name])
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
# build and install clib into temporary directories
|
||||||
|
if not self.python_extensions_only:
|
||||||
|
self.cmake_build_and_install(LIB_INSTALL_CFG)
|
||||||
|
|
||||||
|
# install python code into a temporary directory (site-packages)
|
||||||
|
self.cmake_build_and_install(PY_INSTALL_CFG)
|
||||||
|
|
||||||
|
# install clibs into a temporary directory (site-packages)
|
||||||
|
if not self.python_extensions_only:
|
||||||
|
self.run_command("build_clib")
|
||||||
|
|
||||||
|
# Copy extra package_data content filtered by 'find_packages'
|
||||||
exclude = ignore_patterns("*ez_setup*", "*__pycache__*", "*.egg-info*")
|
exclude = ignore_patterns("*ez_setup*", "*__pycache__*", "*.egg-info*")
|
||||||
src, dst = Path(PACKAGE_DIR), Path(self.build_lib)
|
src, dst = Path(PACKAGE_DIR), Path(self.build_lib)
|
||||||
for path in src.glob("**/*"):
|
for path in src.glob("**/*"):
|
||||||
@ -272,29 +308,26 @@ class CustomBuild(build):
|
|||||||
|
|
||||||
|
|
||||||
class PrepareLibs(build_clib):
|
class PrepareLibs(build_clib):
|
||||||
"""Install prebuilt libraries."""
|
"""Prepares prebuilt libraries.
|
||||||
|
|
||||||
|
The steps include: resolve symlinks for versioned shared libraries, set RPATHs for clibs
|
||||||
|
"""
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.configure(LIB_INSTALL_CFG)
|
"""Run build_clib command."""
|
||||||
self.configure(PY_INSTALL_CFG)
|
# remove symlink to avoid copying it, set RPATH
|
||||||
|
self.post_install(LIB_INSTALL_CFG)
|
||||||
|
# copy clib to package data (to WHEEL_LIBS_INSTALL_DIR)
|
||||||
self.copy_package_data(get_install_dirs_list(LIB_INSTALL_CFG))
|
self.copy_package_data(get_install_dirs_list(LIB_INSTALL_CFG))
|
||||||
|
|
||||||
def configure(self, install_cfg):
|
def post_install(self, install_cfg):
|
||||||
"""Collect prebuilt libraries. Install them to the temp directories, set rpath."""
|
"""Install prebuilt libraries to the temp directories, set rpath."""
|
||||||
for comp, comp_data in install_cfg.items():
|
for comp, comp_data in install_cfg.items():
|
||||||
install_prefix = comp_data.get("prefix")
|
|
||||||
install_dir = comp_data.get("install_dir")
|
install_dir = comp_data.get("install_dir")
|
||||||
binary_dir = comp_data.get("binary_dir")
|
|
||||||
|
|
||||||
# perform installation steps if we are not given a full path
|
# we need to resolve symlinks before setting rpath to avoid doing it multiple times
|
||||||
if not os.path.isabs(install_dir):
|
install_dir_path = Path(install_dir)
|
||||||
self.announce(f"Installing {comp}", level=3)
|
self.resolve_symlinks(install_dir_path)
|
||||||
self.spawn(["cmake", "--install", binary_dir,
|
|
||||||
"--prefix", install_prefix,
|
|
||||||
"--config", "Release",
|
|
||||||
"--strip",
|
|
||||||
"--component", comp_data.get("name")])
|
|
||||||
install_dir = os.path.join(install_prefix, install_dir)
|
|
||||||
|
|
||||||
# set rpath if applicable
|
# set rpath if applicable
|
||||||
if sys.platform != "win32" and comp_data.get("rpath"):
|
if sys.platform != "win32" and comp_data.get("rpath"):
|
||||||
@ -305,11 +338,12 @@ class PrepareLibs(build_clib):
|
|||||||
|
|
||||||
for path in filter(
|
for path in filter(
|
||||||
lambda x: any(item in ([".so"] if sys.platform == "linux" else [".dylib", ".so"])
|
lambda x: any(item in ([".so"] if sys.platform == "linux" else [".dylib", ".so"])
|
||||||
for item in x.suffixes), Path(install_dir).glob("*"),
|
for item in x.suffixes), install_dir_path.glob("*"),
|
||||||
):
|
):
|
||||||
set_rpath(comp_data["rpath"], os.path.realpath(path))
|
set_rpath(comp_data["rpath"], os.path.realpath(path))
|
||||||
|
|
||||||
def get_reallink(self, link_file):
|
def get_reallink(self, link_file):
|
||||||
|
"""Get the real file path of a soft link."""
|
||||||
real_name = link_file
|
real_name = link_file
|
||||||
while True:
|
while True:
|
||||||
real_name = os.readlink(real_name)
|
real_name = os.readlink(real_name)
|
||||||
@ -366,9 +400,6 @@ class PrepareLibs(build_clib):
|
|||||||
os.makedirs(package_clibs_dir, exist_ok=True)
|
os.makedirs(package_clibs_dir, exist_ok=True)
|
||||||
|
|
||||||
for src_dir in src_dirs:
|
for src_dir in src_dirs:
|
||||||
local_base_dir = Path(src_dir)
|
|
||||||
self.resolve_symlinks(local_base_dir)
|
|
||||||
|
|
||||||
# additional blacklist filter, just to fix cmake install issues
|
# additional blacklist filter, just to fix cmake install issues
|
||||||
blacklist_patterns = [ # static libraries and PBD files
|
blacklist_patterns = [ # static libraries and PBD files
|
||||||
"^.*\\.a$", "^.*\\.lib$", "^.*\\.pdb$",
|
"^.*\\.a$", "^.*\\.lib$", "^.*\\.pdb$",
|
||||||
@ -378,7 +409,7 @@ class PrepareLibs(build_clib):
|
|||||||
"^.*\\.la$"]
|
"^.*\\.la$"]
|
||||||
|
|
||||||
# copy so / dylib files to WHEEL_LIBS_INSTALL_DIR (clibs) inside python package
|
# copy so / dylib files to WHEEL_LIBS_INSTALL_DIR (clibs) inside python package
|
||||||
for file_path in local_base_dir.rglob("*"):
|
for file_path in Path(src_dir).rglob("*"):
|
||||||
file_name = os.path.basename(file_path)
|
file_name = os.path.basename(file_path)
|
||||||
if file_path.is_symlink():
|
if file_path.is_symlink():
|
||||||
# sanity check for self.resolve_symlinks
|
# sanity check for self.resolve_symlinks
|
||||||
@ -402,10 +433,18 @@ class PrepareLibs(build_clib):
|
|||||||
class CopyExt(build_ext):
|
class CopyExt(build_ext):
|
||||||
"""Copy extension files to the build directory."""
|
"""Copy extension files to the build directory."""
|
||||||
|
|
||||||
|
user_options = [
|
||||||
|
("skip-rpath", None, "Skips RPATH for Python extensions."),
|
||||||
|
]
|
||||||
|
boolean_options = ['skip_rpath']
|
||||||
|
|
||||||
|
def initialize_options(self):
|
||||||
|
"""Set default values for all the options that this command supports."""
|
||||||
|
super().initialize_options()
|
||||||
|
self.skip_rpath = False
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
if len(self.extensions) == 1:
|
if len(self.extensions) == 1:
|
||||||
# when python3 setup.py build_ext is called, while build_clib is not called before
|
|
||||||
self.run_command("build_clib")
|
|
||||||
self.extensions = find_prebuilt_extensions(get_install_dirs_list(PY_INSTALL_CFG))
|
self.extensions = find_prebuilt_extensions(get_install_dirs_list(PY_INSTALL_CFG))
|
||||||
|
|
||||||
for extension in self.extensions:
|
for extension in self.extensions:
|
||||||
@ -415,7 +454,7 @@ class CopyExt(build_ext):
|
|||||||
dst = self.get_ext_fullpath(extension.name)
|
dst = self.get_ext_fullpath(extension.name)
|
||||||
os.makedirs(os.path.dirname(dst), exist_ok=True)
|
os.makedirs(os.path.dirname(dst), exist_ok=True)
|
||||||
# setting relative RPATH to found dlls
|
# setting relative RPATH to found dlls
|
||||||
if sys.platform != "win32":
|
if sys.platform != "win32" and not self.skip_rpath:
|
||||||
rpath = os.path.relpath(get_package_dir(PY_INSTALL_CFG), os.path.dirname(src))
|
rpath = os.path.relpath(get_package_dir(PY_INSTALL_CFG), os.path.dirname(src))
|
||||||
rpath = os.path.join(LIBS_RPATH, rpath, WHEEL_LIBS_INSTALL_DIR)
|
rpath = os.path.join(LIBS_RPATH, rpath, WHEEL_LIBS_INSTALL_DIR)
|
||||||
set_rpath(rpath, os.path.realpath(src))
|
set_rpath(rpath, os.path.realpath(src))
|
||||||
@ -464,52 +503,52 @@ def is_tool(name):
|
|||||||
|
|
||||||
|
|
||||||
def remove_rpath(file_path):
|
def remove_rpath(file_path):
|
||||||
"""Remove rpath from binaries.
|
"""Remove rpath from macOS binaries.
|
||||||
|
|
||||||
:param file_path: binary path
|
:param file_path: binary path
|
||||||
:type file_path: pathlib.Path
|
:type file_path: pathlib.Path
|
||||||
"""
|
"""
|
||||||
if sys.platform == "darwin":
|
if not sys.platform == "darwin":
|
||||||
cmd = (
|
|
||||||
f"otool -l {file_path} " # noqa: P103
|
|
||||||
f"| grep LC_RPATH -A3 "
|
|
||||||
f"| grep -o 'path.*' "
|
|
||||||
f"| cut -d ' ' -f2 "
|
|
||||||
f"| xargs -I{{}} install_name_tool -delete_rpath {{}} {file_path}"
|
|
||||||
)
|
|
||||||
if os.WEXITSTATUS(os.system(cmd)) != 0: # nosec
|
|
||||||
sys.exit(f"Could not remove rpath for {file_path}")
|
|
||||||
else:
|
|
||||||
sys.exit(f"Unsupported platform: {sys.platform}")
|
sys.exit(f"Unsupported platform: {sys.platform}")
|
||||||
|
|
||||||
|
cmd = (
|
||||||
|
f"otool -l {file_path} " # noqa: P103
|
||||||
|
f"| grep LC_RPATH -A3 "
|
||||||
|
f"| grep -o 'path.*' "
|
||||||
|
f"| cut -d ' ' -f2 "
|
||||||
|
f"| xargs -I{{}} install_name_tool -delete_rpath {{}} {file_path}"
|
||||||
|
)
|
||||||
|
if os.WEXITSTATUS(os.system(cmd)) != 0: # nosec
|
||||||
|
sys.exit(f"Could not remove rpath for {file_path}")
|
||||||
|
|
||||||
def set_rpath(rpath, executable):
|
|
||||||
"""Setting rpath for linux and macOS libraries."""
|
def set_rpath(rpath, binary):
|
||||||
print(f"Setting rpath {rpath} for {executable}") # noqa: T001, T201
|
"""Setting rpath for Linux and macOS binaries."""
|
||||||
|
print(f"Setting rpath {rpath} for {binary}") # noqa: T001, T201
|
||||||
cmd = []
|
cmd = []
|
||||||
rpath_tool = ""
|
rpath_tool = ""
|
||||||
|
|
||||||
if sys.platform == "linux":
|
if sys.platform == "linux":
|
||||||
with open(os.path.realpath(executable), "rb") as file:
|
with open(os.path.realpath(binary), "rb") as file:
|
||||||
if file.read(1) != b"\x7f":
|
if file.read(1) != b"\x7f":
|
||||||
log.warn(f"WARNING: {executable}: missed ELF header")
|
log.warn(f"WARNING: {binary}: missed ELF header")
|
||||||
return
|
return
|
||||||
rpath_tool = "patchelf"
|
rpath_tool = "patchelf"
|
||||||
cmd = [rpath_tool, "--set-rpath", rpath, executable]
|
cmd = [rpath_tool, "--set-rpath", rpath, binary]
|
||||||
elif sys.platform == "darwin":
|
elif sys.platform == "darwin":
|
||||||
rpath_tool = "install_name_tool"
|
rpath_tool = "install_name_tool"
|
||||||
cmd = [rpath_tool, "-add_rpath", rpath, executable]
|
cmd = [rpath_tool, "-add_rpath", rpath, binary]
|
||||||
else:
|
else:
|
||||||
sys.exit(f"Unsupported platform: {sys.platform}")
|
sys.exit(f"Unsupported platform: {sys.platform}")
|
||||||
|
|
||||||
if is_tool(rpath_tool):
|
if not is_tool(rpath_tool):
|
||||||
if sys.platform == "darwin":
|
sys.exit(f"Could not find {rpath_tool} on the system, " f"please make sure that this tool is installed")
|
||||||
remove_rpath(executable)
|
|
||||||
ret_info = subprocess.run(cmd, check=True, shell=False) # nosec
|
if sys.platform == "darwin":
|
||||||
if ret_info.returncode != 0:
|
remove_rpath(binary)
|
||||||
sys.exit(f"Could not set rpath: {rpath} for {executable}")
|
ret_info = subprocess.run(cmd, check=True, shell=False) # nosec
|
||||||
else:
|
if ret_info.returncode != 0:
|
||||||
sys.exit(f"Could not found {rpath_tool} on the system, " f"please make sure that this tool is installed")
|
sys.exit(f"Could not set rpath: {rpath} for {binary}")
|
||||||
|
|
||||||
|
|
||||||
def find_prebuilt_extensions(search_dirs):
|
def find_prebuilt_extensions(search_dirs):
|
||||||
@ -575,6 +614,18 @@ def get_package_dir(install_cfg):
|
|||||||
return py_package_path
|
return py_package_path
|
||||||
|
|
||||||
|
|
||||||
|
def find_entry_points(install_cfg):
|
||||||
|
"""Creates a list of entry points for OpenVINO runtime package."""
|
||||||
|
entry_points = {
|
||||||
|
"console_scripts": [],
|
||||||
|
}
|
||||||
|
for comp_info in install_cfg.values():
|
||||||
|
empty_point = comp_info.get("entry_point")
|
||||||
|
if empty_point is not None:
|
||||||
|
entry_points["console_scripts"].append(empty_point["console_scripts"])
|
||||||
|
return entry_points
|
||||||
|
|
||||||
|
|
||||||
def concat_files(input_files, output_file):
|
def concat_files(input_files, output_file):
|
||||||
"""Concatenates multuple input files to a single output file."""
|
"""Concatenates multuple input files to a single output file."""
|
||||||
with open(output_file, "w", encoding="utf-8") as outfile:
|
with open(output_file, "w", encoding="utf-8") as outfile:
|
||||||
@ -590,6 +641,7 @@ PACKAGE_DIR = get_package_dir(PY_INSTALL_CFG)
|
|||||||
packages = find_namespace_packages(PACKAGE_DIR)
|
packages = find_namespace_packages(PACKAGE_DIR)
|
||||||
package_data: typing.Dict[str, list] = {}
|
package_data: typing.Dict[str, list] = {}
|
||||||
ext_modules = find_prebuilt_extensions(get_install_dirs_list(PY_INSTALL_CFG))
|
ext_modules = find_prebuilt_extensions(get_install_dirs_list(PY_INSTALL_CFG))
|
||||||
|
entry_points = find_entry_points(PY_INSTALL_CFG)
|
||||||
|
|
||||||
long_description_md = OPENVINO_SOURCE_DIR / "docs" / "install_guides" / "pypi-openvino-rt.md"
|
long_description_md = OPENVINO_SOURCE_DIR / "docs" / "install_guides" / "pypi-openvino-rt.md"
|
||||||
md_files = [long_description_md, OPENVINO_SOURCE_DIR / "docs" / "install_guides" / "pre-release-note.md"]
|
md_files = [long_description_md, OPENVINO_SOURCE_DIR / "docs" / "install_guides" / "pre-release-note.md"]
|
||||||
@ -615,6 +667,7 @@ setup(
|
|||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
download_url="https://github.com/openvinotoolkit/openvino/releases",
|
download_url="https://github.com/openvinotoolkit/openvino/releases",
|
||||||
url=docs_url,
|
url=docs_url,
|
||||||
|
entry_points=entry_points,
|
||||||
cmdclass={
|
cmdclass={
|
||||||
"build": CustomBuild,
|
"build": CustomBuild,
|
||||||
"install": CustomInstall,
|
"install": CustomInstall,
|
||||||
|
11
src/plugins/intel_cpu/thirdparty/ACLConfig.cmake
vendored
11
src/plugins/intel_cpu/thirdparty/ACLConfig.cmake
vendored
@ -326,9 +326,14 @@ elseif(NOT TARGET arm_compute::arm_compute)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(ENABLE_LTO)
|
if(ENABLE_LTO)
|
||||||
if((CMAKE_COMPILER_IS_GNUCXX OR OV_COMPILER_IS_CLANG) AND NOT CMAKE_CROSSCOMPILING)
|
if(NOT CMAKE_CROSSCOMPILING)
|
||||||
set(extra_cxx_flags "${extra_cxx_flags} -flto=thin")
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
set(extra_link_flags "${extra_link_flags} -flto=thin")
|
set(extra_cxx_flags "${extra_cxx_flags} -flto -fno-fat-lto-objects")
|
||||||
|
set(extra_link_flags "${extra_link_flags} -flto -fno-fat-lto-objects")
|
||||||
|
elseif(OV_COMPILER_IS_CLANG)
|
||||||
|
set(extra_cxx_flags "${extra_cxx_flags} -flto=thin")
|
||||||
|
set(extra_link_flags "${extra_link_flags} -flto=thin")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -36,6 +36,12 @@ add_subdirectory(mo)
|
|||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pot/openvino/tools/pot/version.txt.in"
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pot/openvino/tools/pot/version.txt.in"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/pot/openvino/tools/pot/version.txt" @ONLY)
|
"${CMAKE_CURRENT_SOURCE_DIR}/pot/openvino/tools/pot/version.txt" @ONLY)
|
||||||
|
|
||||||
|
# Benchmark Tool
|
||||||
|
|
||||||
|
if(ENABLE_PYTHON)
|
||||||
|
add_subdirectory(benchmark_tool)
|
||||||
|
endif()
|
||||||
|
|
||||||
# wheel openvino-dev
|
# wheel openvino-dev
|
||||||
|
|
||||||
add_subdirectory(openvino_dev)
|
add_subdirectory(openvino_dev)
|
||||||
|
36
tools/benchmark_tool/CMakeLists.txt
Normal file
36
tools/benchmark_tool/CMakeLists.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Copyright (C) 2018-2023 Intel Corporation
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required (VERSION 3.13)
|
||||||
|
|
||||||
|
project(OpenVINOBenchmarkTool)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Packages & settings
|
||||||
|
#
|
||||||
|
|
||||||
|
if(NOT DEFINED OpenVINO_SOURCE_DIR)
|
||||||
|
get_filename_component(OpenVINO_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../.." REALPATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT IEDevScripts_FOUND)
|
||||||
|
find_package(IEDevScripts REQUIRED
|
||||||
|
PATHS "${OpenVINO_SOURCE_DIR}/cmake/developer_package"
|
||||||
|
NO_CMAKE_FIND_ROOT_PATH
|
||||||
|
NO_DEFAULT_PATH)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Installation rules
|
||||||
|
#
|
||||||
|
|
||||||
|
ov_get_pyversion(pyversion)
|
||||||
|
ov_cpack_add_component(${OV_CPACK_COMP_PYTHON_OPENVINO}_${pyversion}
|
||||||
|
HIDDEN)
|
||||||
|
|
||||||
|
install(DIRECTORY ${OpenVINOBenchmarkTool_SOURCE_DIR}/openvino
|
||||||
|
DESTINATION ${OV_CPACK_PYTHONDIR}
|
||||||
|
COMPONENT ${OV_CPACK_COMP_PYTHON_OPENVINO}_${pyversion}
|
||||||
|
${OV_CPACK_COMP_PYTHON_OPENVINO_EXCLUDE_ALL}
|
||||||
|
USE_SOURCE_PERMISSIONS)
|
Loading…
Reference in New Issue
Block a user