Improved openvino runtime python wheel build (#7604)
* Proper dependencies for ie_wheel * Used version information when building wheels
This commit is contained in:
parent
bd29f64570
commit
7938c18b7c
@ -14,7 +14,7 @@ set(CMAKE_MODULE_PATH "${IEDevScripts_DIR}")
|
|||||||
function(set_ci_build_number)
|
function(set_ci_build_number)
|
||||||
set(repo_root "${CMAKE_SOURCE_DIR}")
|
set(repo_root "${CMAKE_SOURCE_DIR}")
|
||||||
include(version)
|
include(version)
|
||||||
foreach(var CI_BUILD_NUMBER IE_VERSION
|
foreach(var CI_BUILD_NUMBER IE_VERSION IE_VERSION_BUILD
|
||||||
IE_VERSION_MAJOR IE_VERSION_MINOR IE_VERSION_PATCH)
|
IE_VERSION_MAJOR IE_VERSION_MINOR IE_VERSION_PATCH)
|
||||||
if(NOT DEFINED ${var})
|
if(NOT DEFINED ${var})
|
||||||
message(FATAL_ERROR "${var} version component is not defined")
|
message(FATAL_ERROR "${var} version component is not defined")
|
||||||
|
@ -27,10 +27,12 @@ function (commitHash VAR)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
macro(ie_parse_ci_build_number)
|
macro(ie_parse_ci_build_number)
|
||||||
if(CI_BUILD_NUMBER MATCHES "^([0-9]+)\.([0-9]+)\.([0-9]+)\-.*")
|
set(IE_VERSION_BUILD 000)
|
||||||
|
if(CI_BUILD_NUMBER MATCHES "^([0-9]+)\.([0-9]+)\.([0-9]+)\-([0-9]+)\-.*")
|
||||||
set(IE_VERSION_MAJOR ${CMAKE_MATCH_1})
|
set(IE_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||||
set(IE_VERSION_MINOR ${CMAKE_MATCH_2})
|
set(IE_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||||
set(IE_VERSION_PATCH ${CMAKE_MATCH_3})
|
set(IE_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||||
|
set(IE_VERSION_BUILD ${CMAKE_MATCH_4})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED repo_root)
|
if(NOT DEFINED repo_root)
|
||||||
|
@ -34,7 +34,9 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PYTHONLIBS_VERSION_STRING MATCHES "^([0-9]+)\.([0-9]+).*")
|
if(PYTHONLIBS_VERSION_STRING MATCHES "^([0-9]+)\.([0-9]+).*")
|
||||||
set(PYTHON_VERSION python${CMAKE_MATCH_1}.${CMAKE_MATCH_2})
|
set(PYTHON_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||||
|
set(PYTHON_VERSION_MINOR ${CMAKE_MATCH_2})
|
||||||
|
set(PYTHON_VERSION python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR})
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Failed to extract python major.minor from ${PYTHONLIBS_VERSION_STRING}")
|
message(FATAL_ERROR "Failed to extract python major.minor from ${PYTHONLIBS_VERSION_STRING}")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
WHEEL_PACKAGE_NAME=@WHEEL_PACKAGE_NAME@
|
WHEEL_PACKAGE_NAME=@WHEEL_PACKAGE_NAME@
|
||||||
WHEEL_VERSION=@WHEEL_VERSION@
|
WHEEL_VERSION=@WHEEL_VERSION@
|
||||||
|
WHEEL_BUILD=@WHEEL_BUILD@
|
||||||
WHEEL_LICENCE_TYPE=@WHEEL_LICENCE_TYPE@
|
WHEEL_LICENCE_TYPE=@WHEEL_LICENCE_TYPE@
|
||||||
WHEEL_AUTHOR=@WHEEL_AUTHOR@
|
WHEEL_AUTHOR=@WHEEL_AUTHOR@
|
||||||
WHEEL_AUTHOR_EMAIL=@WHEEL_AUTHOR_EMAIL@
|
WHEEL_AUTHOR_EMAIL=@WHEEL_AUTHOR_EMAIL@
|
||||||
|
@ -9,14 +9,15 @@ set(WHEEL_AUTHOR_EMAIL "openvino_pushbot@intel.com" CACHE STRING "Email address
|
|||||||
set(WHEEL_DESC "Inference Engine Python* API" CACHE STRING "Short, summary description of the package")
|
set(WHEEL_DESC "Inference Engine Python* API" CACHE STRING "Short, summary description of the package")
|
||||||
set(WHEEL_URL "https://docs.openvinotoolkit.org/latest/index.html" CACHE STRING "Home page url")
|
set(WHEEL_URL "https://docs.openvinotoolkit.org/latest/index.html" CACHE STRING "Home page url")
|
||||||
set(WHEEL_DOWNLOAD_URL "https://github.com/openvinotoolkit/openvino/tags" CACHE STRING "Download page url")
|
set(WHEEL_DOWNLOAD_URL "https://github.com/openvinotoolkit/openvino/tags" CACHE STRING "Download page url")
|
||||||
set(WHEEL_VERSION "0.0.0" CACHE STRING "Version of this release")
|
set(WHEEL_VERSION "${IE_VERSION}" CACHE STRING "Version of this release" FORCE)
|
||||||
set(WHEEL_BUILD "000" CACHE STRING "Build number of this release")
|
set(WHEEL_BUILD "${IE_VERSION_BUILD}" CACHE STRING "Build number of this release" FORCE)
|
||||||
set(WHEEL_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE" CACHE STRING "Wheel license file")
|
set(WHEEL_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE" CACHE STRING "Wheel license file")
|
||||||
set(WHEEL_REQUIREMENTS "${CMAKE_CURRENT_SOURCE_DIR}/meta/openvino.requirements.txt" CACHE STRING "Wheel requirements.txt file")
|
set(WHEEL_REQUIREMENTS "${CMAKE_CURRENT_SOURCE_DIR}/meta/openvino.requirements.txt" CACHE STRING "Wheel requirements.txt file")
|
||||||
set(WHEEL_OVERVIEW "${CMAKE_CURRENT_SOURCE_DIR}/meta/pypi_overview.md" CACHE STRING "Detailed description")
|
set(WHEEL_OVERVIEW "${CMAKE_CURRENT_SOURCE_DIR}/meta/pypi_overview.md" CACHE STRING "Detailed description")
|
||||||
|
|
||||||
set(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py")
|
set(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py")
|
||||||
set(SETUP_ENV "${CMAKE_CURRENT_SOURCE_DIR}/.env.in")
|
set(SETUP_ENV "${CMAKE_CURRENT_SOURCE_DIR}/.env.in")
|
||||||
|
set(SETUP_ENV_OUT "${CMAKE_CURRENT_SOURCE_DIR}/.env")
|
||||||
|
|
||||||
set(PY_PACKAGES_DIR ${PYTHON_BRIDGE_CPACK_PATH}/${PYTHON_VERSION})
|
set(PY_PACKAGES_DIR ${PYTHON_BRIDGE_CPACK_PATH}/${PYTHON_VERSION})
|
||||||
set(TBB_LIBS_DIR runtime/3rdparty/tbb/lib)
|
set(TBB_LIBS_DIR runtime/3rdparty/tbb/lib)
|
||||||
@ -32,15 +33,7 @@ else()
|
|||||||
message(FATAL_ERROR "This platform is not supported")
|
message(FATAL_ERROR "This platform is not supported")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
configure_file(${SETUP_ENV} "${CMAKE_CURRENT_SOURCE_DIR}/.env" @ONLY)
|
configure_file(${SETUP_ENV} ${SETUP_ENV_OUT} @ONLY)
|
||||||
|
|
||||||
add_custom_target(ie_wheel ALL DEPENDS ie_api offline_transformations_api)
|
|
||||||
|
|
||||||
foreach(_target ie_libraries ie_plugins _pyngraph)
|
|
||||||
if(TARGET ${_target})
|
|
||||||
add_dependencies(ie_wheel ${_target})
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(LINUX)
|
if(LINUX)
|
||||||
find_host_program(patchelf_program
|
find_host_program(patchelf_program
|
||||||
@ -51,21 +44,30 @@ if(LINUX)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(TARGET ie_wheel
|
# create target for openvino.wheel
|
||||||
PRE_BUILD
|
|
||||||
|
set(openvino_wheel_deps ie_api offline_transformations_api)
|
||||||
|
foreach(_target ie_libraries ie_plugins _pyngraph)
|
||||||
|
if(TARGET ${_target})
|
||||||
|
list(APPEND openvino_wheel_deps ${_target})
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(cp_python "cp${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
|
||||||
|
set(openvino_wheel_name "openvino-${WHEEL_VERSION}-${WHEEL_BUILD}-${cp_python}-${cp_python}-${WHEEL_PLATFORM}.whl")
|
||||||
|
set(openvino_wheels_output_dir "${CMAKE_BINARY_DIR}/wheels")
|
||||||
|
set(openvino_wheel_path "${openvino_wheels_output_dir}/${openvino_wheel_name}")
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${openvino_wheel_path}
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/site-packages"
|
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/site-packages"
|
||||||
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} clean bdist_wheel
|
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} clean bdist_wheel
|
||||||
--dist-dir ${CMAKE_BINARY_DIR}/wheels
|
--dist-dir ${openvino_wheels_output_dir}
|
||||||
--build=${WHEEL_BUILD}
|
--build=${WHEEL_BUILD}
|
||||||
--plat-name=${WHEEL_PLATFORM}
|
--plat-name=${WHEEL_PLATFORM}
|
||||||
POST_BUILD
|
# COMMAND ${CMAKE_COMMAND} -E remove ${SETUP_ENV_OUT}
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR}/.env"
|
DEPENDS ${openvino_wheel_deps} ${SETUP_ENV_OUT}
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
COMMENT "Building Python wheel ${WHEEL_PACKAGE_NAME}"
|
COMMENT "Building Python wheel ${openvino_wheel_name}"
|
||||||
VERBATIM
|
VERBATIM)
|
||||||
)
|
|
||||||
|
|
||||||
set_property(TARGET ie_wheel
|
add_custom_target(ie_wheel DEPENDS ${openvino_wheel_path})
|
||||||
APPEND
|
|
||||||
PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_BINARY_DIR}/wheels"
|
|
||||||
)
|
|
||||||
|
@ -446,6 +446,7 @@ ext_modules = find_prebuilt_extensions(get_dir_list(PY_INSTALL_CFG)) if pkg_name
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
version=config('WHEEL_VERSION', '0.0.0'),
|
version=config('WHEEL_VERSION', '0.0.0'),
|
||||||
|
build=config('WHEEL_BUILD', '000'),
|
||||||
author_email=config('WHEEL_AUTHOR_EMAIL', 'openvino_pushbot@intel.com'),
|
author_email=config('WHEEL_AUTHOR_EMAIL', 'openvino_pushbot@intel.com'),
|
||||||
name=pkg_name,
|
name=pkg_name,
|
||||||
license=config('WHEEL_LICENCE_TYPE', 'OSI Approved :: Apache Software License'),
|
license=config('WHEEL_LICENCE_TYPE', 'OSI Approved :: Apache Software License'),
|
||||||
|
Loading…
Reference in New Issue
Block a user