Automatically detect ENABLE_PYTHON, ENABLE_WHEEL default values (#12551)

* Add ENABLE_WHEEL=ON by default

* Adjust CMake options for GitHub checks

* Add ov_check_pip_package and ov_check_pip_packages CMake functions

* revert options

* skip empty lines

* formatting

* fix condition

* check for patchelf

* Add numpy dependency to condition

* Fix error:

    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (gast 0.4.0 (c:\hostedtoolcache\windows\python\3.7.6\x64\lib\site-packages), Requirement.parse('gast==0.3.3; platform_system == "Windows"'), {'paddlepaddle'})

* set DENABLE_WHEEL=OFF for openvino-onnx docker

* Supported newer versions of shellcheck

* Don't use excluded sources

* Improved NCC process of clang search

* Fixes

* A lot of updates

* Fixes after 2 PRs merge

* Fixed build

* Fixes

* Relaxed cython version a bit

* Try non-pip cython as well

* Fixed MacOsX

* Disable pybind usage for MO tests as well

* Added descriptive warning messages

* Fixed compilation on Windows

* Support for cmake < 3.15

* FIxed Windows linkage

* Fixed review comments

Co-authored-by: Sergey Lyubimtsev <sergey.lyubimtsev@intel.com>
This commit is contained in:
Ilya Lavrenov
2022-08-16 14:43:30 +04:00
committed by GitHub
parent d8237cd97c
commit 2e7284cfa0
24 changed files with 260 additions and 119 deletions

View File

@@ -129,6 +129,7 @@ jobs:
python3 -m pip install --upgrade pip
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/src/compatibility/openvino/requirements.txt
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/wheel/requirements-dev.txt
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/requirements.txt
# For running Python API tests
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/src/compatibility/openvino/requirements-dev.txt
# For running Paddle frontend unit tests
@@ -164,7 +165,6 @@ jobs:
-DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS)
-DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS)
-DPYTHON_EXECUTABLE=/usr/bin/python3.8
-DENABLE_WHEEL=ON
-DENABLE_TESTS=ON
-DENABLE_OV_ONNX_FRONTEND=ON
-DENABLE_FASTER_BUILD=ON

View File

@@ -108,6 +108,7 @@ jobs:
python3 -m pip install --upgrade pip
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/src/compatibility/openvino/requirements.txt
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/wheel/requirements-dev.txt
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/requirements.txt
# For running Python API tests
python3 -m pip install -r $(REPO_DIR)/src/bindings/python/src/compatibility/openvino/requirements-dev.txt
# For running Paddle frontend unit tests
@@ -142,7 +143,6 @@ jobs:
-DENABLE_PYTHON=ON
-DENABLE_OPENCV=OFF
-DPYTHON_EXECUTABLE=/usr/bin/python3.8
-DENABLE_WHEEL=ON
-DENABLE_TESTS=ON
-DENABLE_FASTER_BUILD=ON
-DENABLE_STRICT_DEPENDENCIES=OFF

View File

@@ -57,7 +57,6 @@ jobs:
# -DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
# -DENABLE_PYTHON=ON
# -DPYTHON_EXECUTABLE=/usr/bin/python3.8
# -DENABLE_WHEEL=ON
# -DENABLE_TESTS=ON
# -DENABLE_OV_ONNX_FRONTEND=ON
# -DENABLE_FASTER_BUILD=ON

View File

@@ -112,6 +112,7 @@ jobs:
rem For running Python API tests
python -m pip install -r $(REPO_DIR)\src\bindings\python\src\compatibility\openvino\requirements-dev.txt
python -m pip install -r $(REPO_DIR)\src\bindings\python\wheel\requirements-dev.txt
python -m pip install -r $(REPO_DIR)\src\bindings\python\requirements.txt
rem For running Paddle frontend unit tests
python -m pip install -r $(REPO_DIR)\src\core\tests\frontend\paddle\requirements_dev.txt
rem For running ONNX frontend unit tests
@@ -136,7 +137,6 @@ jobs:
- script: |
set PATH=$(WORK_DIR)\ninja-win;%PATH%
call "$(MSVS_VARS_PATH)" && $(CMAKE_CMD) -G "Ninja Multi-Config" ^
-DENABLE_WHEEL=ON ^
-DENABLE_ONEDNN_FOR_GPU=$(CMAKE_BUILD_SHARED_LIBS) ^
-DBUILD_SHARED_LIBS=$(CMAKE_BUILD_SHARED_LIBS) ^
-DENABLE_REQUIREMENTS_INSTALL=OFF ^
@@ -180,7 +180,7 @@ jobs:
-DCMAKE_CXX_COMPILER:PATH="$(MSVC_COMPILER_PATH)" ^
-S $(REPO_DIR)\tests\samples_tests ^
-B $(BUILD_SAMPLES_TESTS_DIR)
displayName: 'CMake'
displayName: 'CMake Samples Tests'
- script: $(CMAKE_CMD) -DCOMPONENT=tests -DCMAKE_INSTALL_PREFIX=$(INSTALL_DIR) -P $(BUILD_SAMPLES_TESTS_DIR)\cmake_install.cmake
displayName: 'Install Samples Tests'

View File

@@ -68,9 +68,6 @@ RUN cmake .. \
-DENABLE_INTEL_GPU=OFF \
-DENABLE_PROFILING_ITT=OFF \
-DENABLE_SAMPLES=OFF \
-DENABLE_PYTHON=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DENABLE_OV_ONNX_FRONTEND=ON \
-DENABLE_OV_PADDLE_FRONTEND=OFF \
-DENABLE_OV_TF_FRONTEND=OFF \
-DENABLE_OPENVINO_DEBUG=OFF \

View File

@@ -12,7 +12,7 @@ on:
- 'samples/python/**'
jobs:
linters:
runs-on: ubuntu-22.04
runs-on: ubuntu-18.04
steps:
- name: Code checkout
uses: actions/checkout@v2
@@ -21,7 +21,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.10'
python-version: '3.6'
- name: Install dependencies
run: python -m pip install -r src/bindings/python/requirements_test.txt
# samples code-style

View File

@@ -275,46 +275,7 @@ function(ov_mark_target_as_cc)
ie_mark_target_as_cc(${ARGN})
endfunction()
# check python package
function(ie_check_pip_package full_name message_type)
find_package(PythonInterp 3 REQUIRED)
get_filename_component(PYTHON_EXEC_DIR ${PYTHON_EXECUTABLE} DIRECTORY)
# extract version if any
if(full_name MATCHES "^([a-z_]+)[~=<>!]*(.*)$")
set(name ${CMAKE_MATCH_1})
set(req_version ${CMAKE_MATCH_2})
else()
set(name ${full_name})
endif()
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -m pip show ${name}
WORKING_DIRECTORY ${PYTHON_EXEC_DIR}
RESULT_VARIABLE PIP_EXIT_CODE
OUTPUT_VARIABLE output)
if(NOT PIP_EXIT_CODE EQUAL 0)
set(${name}_FOUND OFF PARENT_SCOPE)
message(${message_type} "${name} package is not installed. Please use \"${PYTHON_EXECUTABLE} -m pip install ${full_name}\".")
else()
if(req_version)
string(REGEX MATCH "Version: ([0-9]+\.?[0-9]*\.?[0-9]*)\n" installed_version "${output}")
if(installed_version)
set(installed_version "${CMAKE_MATCH_1}")
endif()
if(NOT req_version STREQUAL installed_version)
message(${message_type} "${name} package is installed, but may have different version (${installed_version}). "
"Please use \"${PYTHON_EXECUTABLE} -m pip install ${full_name}\".")
endif()
else()
set(${name}_FOUND ON PARENT_SCOPE)
endif()
endif()
endfunction()
include(python_requirements)
# Code style utils

View File

@@ -2,8 +2,8 @@
# SPDX-License-Identifier: Apache-2.0
#
if(NOT COMMAND ie_check_pip_package)
message(FATAL_ERROR "ncc_naming_style.cmake must be included after ie_check_pip_package")
if(NOT COMMAND ov_check_pip_packages)
message(FATAL_ERROR "Internal error: ncc_naming_style.cmake must be included after ov_check_pip_packages")
endif()
set(ncc_style_dir "${IEDevScripts_DIR}/ncc_naming_style")
@@ -72,12 +72,14 @@ if(NOT EXISTS ${ncc_script_py})
endif()
if(ENABLE_NCC_STYLE)
set(req_file "${ncc_style_dir}/requirements_dev.txt")
file(STRINGS ${req_file} req_lines)
foreach(req IN LISTS req_lines)
ie_check_pip_package(${req} STATUS)
endforeach()
ov_check_pip_packages(REQUIREMENTS_FILE "${ncc_style_dir}/requirements_dev.txt"
RESULT_VAR python_clang_FOUND
WARNING_MESSAGE "NCC style check will be unavailable"
MESSAGE_MODE WARNING)
if(NOT python_clang_FOUND)
# Note: warnings is already thrown by `ov_check_pip_packages`
set(ENABLE_NCC_STYLE OFF)
endif()
endif()
# create high-level target

View File

@@ -0,0 +1,112 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
#
# ov_check_pip_package(REQUIREMENT <single requirement>
# RESULT_VAR <result var name>
# [WARNING_MESSAGE <message>]
# [MESSAGE_MODE <WARNING | FATAL_ERROR | TRACE>])
#
function(ov_check_pip_package)
find_package(PythonInterp 3 QUIET)
set(oneValueOptionalArgs
MESSAGE_MODE # Set the type of message: { FATAL_ERROR | WARNING | ... }
WARNING_MESSAGE # callback message
)
set(oneValueRequiredArgs
REQUIREMENT # Requirement-specifier to check
RESULT_VAR # Result varibale to set return code {ON | OFF}
)
set(multiValueArgs)
cmake_parse_arguments(ARG "" "${oneValueRequiredArgs};${oneValueOptionalArgs}" "${multiValueArgs}" ${ARGN})
foreach(argName ${oneValueRequiredArgs})
if (NOT ARG_${argName})
message(SEND_ERROR "Argument '${argName}' is required.")
endif()
endforeach()
if(NOT ARG_MESSAGE_MODE)
set(ARG_MESSAGE_MODE WARNING)
elseif(CMAKE_VERSION VERSION_LESS 3.15 AND ARG_MESSAGE_MODE STREQUAL "TRACE")
set(ARG_MESSAGE_MODE WARNING)
endif()
if(ARG_UNPARSED_ARGUMENTS)
message(SEND_ERROR "Unexpected parameters have passed to the function: ${ARG_UNPARSED_ARGUMENTS}")
endif()
# quote '3.x' with \'3.x\'
string(REPLACE "'" "\\'" REQ "${ARG_REQUIREMENT}")
if(PYTHONINTERP_FOUND)
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import pkg_resources ; pkg_resources.require('${REQ}')"
RESULT_VARIABLE EXIT_CODE
OUTPUT_VARIABLE OUTPUT_TEXT
ERROR_VARIABLE ERROR_TEXT)
endif()
if(NOT EXIT_CODE EQUAL 0)
set(${ARG_RESULT_VAR} OFF PARENT_SCOPE)
message(${ARG_MESSAGE_MODE} "Python module '${REQ}' is missed, ${ARG_WARNING_MESSAGE}")
else()
set(${ARG_RESULT_VAR} ON PARENT_SCOPE)
endif()
endfunction()
#
# ov_check_pip_packages(REQUIREMENTS_FILE <requirements.txt file>
# RESULT_VAR <result var name>
# [WARNING_MESSAGE <message>]
# [MESSAGE_MODE <WARNING | FATAL_ERROR | TRACE>])
#
function(ov_check_pip_packages)
find_package(PythonInterp 3 QUIET)
set(oneValueOptionalArgs
MESSAGE_MODE # Set the type of message: { FATAL_ERROR | WARNING | ... }
WARNING_MESSAGE # callback message
)
set(oneValueRequiredArgs
REQUIREMENTS_FILE # File with requirement-specifiers to check
RESULT_VAR # Result varibale to set return code {ON | OFF}
)
set(multiValueArgs)
cmake_parse_arguments(ARG "" "${oneValueOptionalArgs};${oneValueRequiredArgs}" "${multiValueArgs}" ${ARGN})
foreach(argName ${oneValueRequiredArgs})
if (NOT ARG_${argName})
message(SEND_ERROR "Argument '${argName}' is required.")
endif()
endforeach()
if(NOT ARG_MESSAGE_MODE)
set(ARG_MESSAGE_MODE WARNING)
elseif(CMAKE_VERSION VERSION_LESS 3.15 AND ARG_MESSAGE_MODE STREQUAL "TRACE")
set(ARG_MESSAGE_MODE WARNING)
endif()
if(ARG_UNPARSED_ARGUMENTS)
message(SEND_ERROR "Unexpected parameters have passed to the function: ${ARG_UNPARSED_ARGUMENTS}")
endif()
if(PYTHONINTERP_FOUND)
execute_process(
COMMAND ${PYTHON_EXECUTABLE} -c "import pkg_resources ; pkg_resources.require(open('${ARG_REQUIREMENTS_FILE}', mode='r'))"
RESULT_VARIABLE EXIT_CODE
OUTPUT_VARIABLE OUTPUT_TEXT
ERROR_VARIABLE ERROR_TEXT)
endif()
if(NOT EXIT_CODE EQUAL 0)
set(${ARG_RESULT_VAR} OFF PARENT_SCOPE)
message(${ARG_MESSAGE_MODE} "Python requirement file ${ARG_REQUIREMENTS_FILE} is not installed, ${ARG_WARNING_MESSAGE}")
else()
set(${ARG_RESULT_VAR} ON PARENT_SCOPE)
endif()
endfunction()

View File

@@ -43,18 +43,9 @@ Usage: -DSELECTIVE_BUILD=ON -DSELECTIVE_BUILD_STAT=/path/*.csv" OFF
ie_option(ENABLE_ERROR_HIGHLIGHT "Highlight errors and warnings during compile time" OFF)
# Try to find python3
find_package(PythonLibs 3 QUIET)
ie_dependent_option (ENABLE_PYTHON "enables ie python bridge build" OFF "PYTHONLIBS_FOUND" OFF)
find_package(PythonInterp 3 QUIET)
ie_dependent_option (ENABLE_DOCS "Build docs using Doxygen" OFF "PYTHONINTERP_FOUND" OFF)
# this option should not be a part of InferenceEngineDeveloperPackage
# since wheels can be built only together with main OV build
cmake_dependent_option (ENABLE_WHEEL "Build wheel packages for PyPi" OFF
"PYTHONINTERP_FOUND;CMAKE_SOURCE_DIR STREQUAL OpenVINO_SOURCE_DIR" OFF)
#
# Inference Engine specific options
#

View File

@@ -1,9 +1,6 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
add_subdirectory(c)
if(ENABLE_PYTHON)
add_subdirectory(python)
endif()
add_subdirectory(python)

View File

@@ -6,6 +6,10 @@ cmake_minimum_required (VERSION 3.13)
project(OpenVINOPython DESCRIPTION "OpenVINO Runtime Python bindings")
#
# Packages & settings
#
if(NOT DEFINED OpenVINO_SOURCE_DIR)
find_package(InferenceEngineDeveloperPackage REQUIRED)
endif()
@@ -20,17 +24,102 @@ set(PYTHON_BINDINGS_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
# TODO: Remove this condition as 76672 will be fixed
if(CMAKE_CROSSCOMPILING AND DEFINED ENV{OE_CMAKE_TOOLCHAIN_FILE})
set(DISABLE_PYOPENVINO ON)
set(DISABLE_PYBIND11 ON CACHE BOOL "Whether pybind11 can be used in python bindings")
endif()
if(DISABLE_PYOPENVINO)
#
# Options
#
set(ov_python_req "${OpenVINOPython_SOURCE_DIR}/requirements.txt")
set(ie_python_req "cython>=0.29.22")
function(ov_check_python_build_conditions)
# Try to find python3
find_package(PythonInterp 3 QUIET)
if(PythonInterp_FOUND)
# use libraries with the same version as python itself
find_package(PythonLibs ${PYTHON_VERSION_STRING} EXACT QUIET)
endif()
# pyopenvino requirements
ov_check_pip_packages(REQUIREMENTS_FILE ${ov_python_req}
RESULT_VAR ov_python_reqs_FOUND
MESSAGE_MODE TRACE)
# Check for Cython to build IE_API
ov_check_pip_package(REQUIREMENT ${ie_python_req}
RESULT_VAR ie_python_req_FOUND
MESSAGE_MODE TRACE)
# ov_python_req are not mandatory for build
set(ov_python_reqs_FOUND ON)
# cython can be installed as a debian package, so pip requirements can be unsatisfied
# so, let's check to find cython anyway
if(NOT ie_python_req_FOUND)
find_package(Cython QUIET
PATHS "${OpenVINOPython_SOURCE_DIR}/src/compatibility/openvino/cmake"
NO_CMAKE_FIND_ROOT_PATH
NO_DEFAULT_PATH)
if(CYTHON_VERSION VERSION_GREATER_EQUAL 0.29)
set(ie_python_req_FOUND ON)
else()
message(WARNING "Python module '${ie_python_req}' is missed, IE Python API 1.0 will not be built")
endif()
endif()
set(PYTHONLIBS_FOUND ${PYTHONLIBS_FOUND} PARENT_SCOPE)
set(ov_python_reqs_FOUND ${ov_python_reqs_FOUND} PARENT_SCOPE)
set(ie_python_req_FOUND ${ie_python_req_FOUND} PARENT_SCOPE)
endfunction()
ov_check_python_build_conditions()
ie_dependent_option(ENABLE_PYTHON "enables ie python bridge build" ON "PYTHONLIBS_FOUND;ov_python_reqs_FOUND" OFF)
if(NOT ENABLE_PYTHON)
if(CMAKE_SOURCE_DIR STREQUAL OpenVINOPython_SOURCE_DIR)
message(FATAL_ERROR "Python OpenVINO API requirements are not satisfied. Please, install ${ie_python_req} and ${ov_python_req}")
else()
return()
endif()
endif()
# Check for wheel package
ov_check_pip_packages(REQUIREMENTS_FILE "${OpenVINOPython_SOURCE_DIR}/wheel/requirements-dev.txt"
RESULT_VAR wheel_req_FOUND
MESSAGE_MODE WARNING)
set(WHEEL_CONDITION "PYTHONINTERP_FOUND;ENABLE_PYTHON;wheel_req_FOUND;CMAKE_SOURCE_DIR STREQUAL OpenVINO_SOURCE_DIR")
if(LINUX)
find_host_program(patchelf_program
NAMES patchelf
DOC "Path to patchelf tool")
if(NOT patchelf_program)
message(WARNING "patchelf is not found. It is required to build OpenVINO Runtime wheel. Install via apt-get install patchelf")
list(APPEND WHEEL_CONDITION patchelf_program)
endif()
endif()
# this option should not be a part of InferenceEngineDeveloperPackage
# since wheels can be built only together with main OV build
ie_dependent_option(ENABLE_WHEEL "Build wheel packages for PyPI" ON "${WHEEL_CONDITION}" OFF)
#
# Build the code
#
if(ie_python_req_FOUND)
add_subdirectory(src/compatibility/openvino)
else()
message(WARNING "NOTE: Python API for OpenVINO 1.0 is disabled")
endif()
if(DISABLE_PYBIND11)
message(WARNING "NOTE: Python API for OpenVINO 2.0 is disabled")
else()
add_subdirectory(src/compatibility/openvino)
add_subdirectory(thirdparty/pybind11 EXCLUDE_FROM_ALL)
add_subdirectory(src/compatibility/pyngraph)
add_subdirectory(src/pyopenvino)
endif()
@@ -39,7 +128,7 @@ if(ENABLE_WHEEL)
add_subdirectory(wheel)
endif()
if(ENABLE_OV_CORE_UNIT_TESTS AND NOT DISABLE_PYOPENVINO)
if(ENABLE_OV_CORE_UNIT_TESTS AND NOT DISABLE_PYBIND11)
add_subdirectory(tests/mock/mock_py_frontend)
add_dependencies(pyopenvino openvino_mock_py_frontend)
set_target_properties(openvino_mock_py_frontend PROPERTIES

View File

@@ -175,8 +175,7 @@ class BuildCMakeExt(build_ext):
self.spawn(["cmake", "-S" + root_dir, "-B" + self.build_temp,
f"-DCMAKE_BUILD_TYPE={self.config}",
f"-DInferenceEngineDeveloperPackage_DIR={ov_build_dir}",
"-DENABLE_PYTHON=ON",
"-DENABLE_OV_ONNX_FRONTEND=ON"] + ext_args)
"-DENABLE_PYTHON=ON"] + ext_args)
self.announce("Building binaries", level=3)

View File

@@ -1,7 +0,0 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
add_subdirectory(compatibility)
add_subdirectory(pyopenvino)

View File

@@ -1,6 +0,0 @@
# Copyright (C) 2018-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
add_subdirectory(pyngraph)
add_subdirectory(openvino)

View File

@@ -16,8 +16,8 @@ target_include_directories(${TARGET_FE_NAME}
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(DEPENDENCIES frontend_common::static)
set(DEFINITIONS)
set(DEPENDENCIES openvino::runtime)
set(DEFINITIONS IMPLEMENT_OPENVINO_API)
if (ENABLE_OV_ONNX_FRONTEND)
list(APPEND DEPENDENCIES openvino::frontend::onnx)

View File

@@ -11,7 +11,7 @@ source_group("src" FILES ${PYBIND_FE_SRC})
pybind11_add_module(${PYBIND_FE_NAME} MODULE ${PYBIND_FE_SRC})
set(DEPENDENCIES openvino_mock_py_frontend openvino::runtime)
set(DEFINITIONS)
set(DEFINITIONS IMPLEMENT_OPENVINO_API)
if (ENABLE_OV_ONNX_FRONTEND)
list(APPEND DEPENDENCIES openvino::frontend::onnx)

View File

@@ -2,7 +2,10 @@
# SPDX-License-Identifier: Apache-2.0
#
find_package(PythonInterp 3 REQUIRED)
#
# Common vars used by setup.py
#
set(PYTHON_VERSION python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
set(WHEEL_VERSION "${OpenVINO_VERSION}" CACHE STRING "Version of this release" FORCE)
set(WHEEL_BUILD "${OpenVINO_VERSION_BUILD}" CACHE STRING "Build number of this release" FORCE)
@@ -14,16 +17,9 @@ if(WIN32)
endif()
set(PUGIXML_LIBS_DIR runtime/3rdparty/pugixml/lib)
if(LINUX)
find_host_program(patchelf_program
NAMES patchelf
DOC "Path to patchelf tool")
if(NOT patchelf_program)
message(FATAL_ERROR "patchelf is not found, which is needed to build ie_wheel")
endif()
endif()
# create target for openvino.wheel
#
# Dependencies
#
set(openvino_wheel_deps ie_api)
foreach(_target ie_api constants _pyngraph pyopenvino ov_plugins py_ov_frontends)
@@ -32,17 +28,21 @@ foreach(_target ie_api constants _pyngraph pyopenvino ov_plugins py_ov_frontends
endif()
endforeach()
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.bdist_wheel ; print(f'{wheel.bdist_wheel.get_abi_tag()}')" OUTPUT_VARIABLE PYTHON_ABI)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{tags.interpreter_name()}{tags.interpreter_version()}')" OUTPUT_VARIABLE INTERPRETER)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{next(tags._platform_tags())}')" OUTPUT_VARIABLE WHEEL_PLATFORM)
string(STRIP ${PYTHON_ABI} PYTHON_ABI)
string(STRIP ${INTERPRETER} INTERPRETER)
string(STRIP ${WHEEL_PLATFORM} WHEEL_PLATFORM)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.bdist_wheel ; print(f'{wheel.bdist_wheel.get_abi_tag()}')"
OUTPUT_VARIABLE PYTHON_ABI OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{tags.interpreter_name()}{tags.interpreter_version()}')"
OUTPUT_VARIABLE INTERPRETER OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import wheel.vendored.packaging.tags as tags ; print(f'{next(tags._platform_tags())}')"
OUTPUT_VARIABLE WHEEL_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE)
set(openvino_wheel_name "openvino-${WHEEL_VERSION}-${WHEEL_BUILD}-${INTERPRETER}-${PYTHON_ABI}-${WHEEL_PLATFORM}.whl")
set(openvino_wheels_output_dir "${CMAKE_BINARY_DIR}/wheels")
set(openvino_wheel_path "${openvino_wheels_output_dir}/${openvino_wheel_name}")
#
# create target for openvino.wheel
#
add_custom_command(OUTPUT ${openvino_wheel_path}
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/licensing" "${CMAKE_BINARY_DIR}/licensing"

View File

@@ -1,3 +1,2 @@
setuptools>=53.0.0
wheel>=0.36.2

View File

@@ -137,7 +137,7 @@ protected:
descriptor::Output& get_output_descriptor(size_t position);
/// \brief Construct an uninitialized Node
Node() = default;
Node();
/// \brief Copying a node
Node(const Node&);
/// \brief Assignment operator

View File

@@ -25,6 +25,8 @@ using namespace std;
atomic<size_t> ov::Node::m_next_instance_id(0);
ov::Node::Node() = default;
ov::Node::Node(const Node& node)
: m_control_dependents(node.m_control_dependents),
m_control_dependencies(node.m_control_dependencies),

View File

@@ -19,7 +19,10 @@ install(TARGETS ${TARGET_NAME}
EXCLUDE_FROM_ALL)
# Test model generating
ie_check_pip_package(paddlepaddle WARNING paddle)
ov_check_pip_package(REQUIREMENT paddlepaddle
MESSAGE_MODE WARNING
WARNING_MESSAGE "PaddlePaddle frontend unit tests will be skipped"
RESULT_VAR paddlepaddle_FOUND)
set(TEST_PADDLE_MODELS_DIRNAME test_model_zoo/paddle_test_models)
target_compile_definitions(${TARGET_NAME} PRIVATE -D TEST_PADDLE_MODELS_DIRNAME=\"${TEST_PADDLE_MODELS_DIRNAME}/\")
@@ -34,7 +37,7 @@ DownloadAndCheck(${PADDLEDET_OPS_URL} ${PADDLEDET_DIRNAME}/ops.py PADDLEDET_FATA
# but models will not be generated and tests will fail
# This is done this way for 'code style' and check cases - cmake shall pass, but CI machine doesn't need to have
# 'paddlepaddle' installed to check code style
if(paddlepaddle_FOUND AND ${PADDLEDET_RESULT} STREQUAL "ON")
if(paddlepaddle_FOUND AND PADDLEDET_RESULT)
set(TEST_PADDLE_MODELS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_PADDLE_MODELS_DIRNAME}/)
if(WIN32)

View File

@@ -19,7 +19,10 @@ install(TARGETS ${TARGET_NAME}
EXCLUDE_FROM_ALL)
# Test model generating
ie_check_pip_package(tensorflow WARNING)
ov_check_pip_package(REQUIREMENT tensorflow
MESSAGE_MODE WARNING
WARNING_MESSAGE "TensorFlow frontend unit tests will be skipped"
RESULT_VAR tensorflow_FOUND)
set(TEST_TENSORFLOW_MODELS_DIRNAME test_model_zoo/tensorflow_test_models)
target_compile_definitions(${TARGET_NAME} PRIVATE -D TEST_TENSORFLOW_MODELS_DIRNAME=\"${TEST_TENSORFLOW_MODELS_DIRNAME}/\")

View File

@@ -5,7 +5,7 @@ if(NOT ENABLE_PYTHON)
message(WARNING "Please enable IE & nGraph Python API (pyopenvino) targets to enable Model Optimizer target")
else()
add_custom_target(model_optimizer DEPENDS ie_api openvino_ir_frontend pyopenvino)
if(ENABLE_TESTS)
if(ENABLE_TESTS AND NOT DISABLE_PYBIND11)
add_subdirectory(unit_tests/mock_mo_frontend/mock_mo_frontend)
add_dependencies(model_optimizer openvino_mock_mo_frontend)