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)
|
||||
set(repo_root "${CMAKE_SOURCE_DIR}")
|
||||
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)
|
||||
if(NOT DEFINED ${var})
|
||||
message(FATAL_ERROR "${var} version component is not defined")
|
||||
|
@ -27,10 +27,12 @@ function (commitHash VAR)
|
||||
endfunction()
|
||||
|
||||
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_MINOR ${CMAKE_MATCH_2})
|
||||
set(IE_VERSION_PATCH ${CMAKE_MATCH_3})
|
||||
set(IE_VERSION_BUILD ${CMAKE_MATCH_4})
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED repo_root)
|
||||
|
@ -34,7 +34,9 @@ else()
|
||||
endif()
|
||||
|
||||
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()
|
||||
message(FATAL_ERROR "Failed to extract python major.minor from ${PYTHONLIBS_VERSION_STRING}")
|
||||
endif()
|
||||
|
@ -1,5 +1,6 @@
|
||||
WHEEL_PACKAGE_NAME=@WHEEL_PACKAGE_NAME@
|
||||
WHEEL_VERSION=@WHEEL_VERSION@
|
||||
WHEEL_BUILD=@WHEEL_BUILD@
|
||||
WHEEL_LICENCE_TYPE=@WHEEL_LICENCE_TYPE@
|
||||
WHEEL_AUTHOR=@WHEEL_AUTHOR@
|
||||
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_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_VERSION "0.0.0" CACHE STRING "Version of this release")
|
||||
set(WHEEL_BUILD "000" CACHE STRING "Build number of this release")
|
||||
set(WHEEL_VERSION "${IE_VERSION}" CACHE STRING "Version of this release" FORCE)
|
||||
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_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(SETUP_PY "${CMAKE_CURRENT_SOURCE_DIR}/setup.py")
|
||||
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(TBB_LIBS_DIR runtime/3rdparty/tbb/lib)
|
||||
@ -32,15 +33,7 @@ else()
|
||||
message(FATAL_ERROR "This platform is not supported")
|
||||
endif()
|
||||
|
||||
configure_file(${SETUP_ENV} "${CMAKE_CURRENT_SOURCE_DIR}/.env" @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()
|
||||
configure_file(${SETUP_ENV} ${SETUP_ENV_OUT} @ONLY)
|
||||
|
||||
if(LINUX)
|
||||
find_host_program(patchelf_program
|
||||
@ -51,21 +44,30 @@ if(LINUX)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_custom_command(TARGET ie_wheel
|
||||
PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/site-packages"
|
||||
COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} clean bdist_wheel
|
||||
--dist-dir ${CMAKE_BINARY_DIR}/wheels
|
||||
--build=${WHEEL_BUILD}
|
||||
--plat-name=${WHEEL_PLATFORM}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_SOURCE_DIR}/.env"
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
COMMENT "Building Python wheel ${WHEEL_PACKAGE_NAME}"
|
||||
VERBATIM
|
||||
)
|
||||
# create target for openvino.wheel
|
||||
|
||||
set_property(TARGET ie_wheel
|
||||
APPEND
|
||||
PROPERTY ADDITIONAL_CLEAN_FILES "${CMAKE_BINARY_DIR}/wheels"
|
||||
)
|
||||
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 ${PYTHON_EXECUTABLE} ${SETUP_PY} clean bdist_wheel
|
||||
--dist-dir ${openvino_wheels_output_dir}
|
||||
--build=${WHEEL_BUILD}
|
||||
--plat-name=${WHEEL_PLATFORM}
|
||||
# COMMAND ${CMAKE_COMMAND} -E remove ${SETUP_ENV_OUT}
|
||||
DEPENDS ${openvino_wheel_deps} ${SETUP_ENV_OUT}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
|
||||
COMMENT "Building Python wheel ${openvino_wheel_name}"
|
||||
VERBATIM)
|
||||
|
||||
add_custom_target(ie_wheel DEPENDS ${openvino_wheel_path})
|
||||
|
@ -446,6 +446,7 @@ ext_modules = find_prebuilt_extensions(get_dir_list(PY_INSTALL_CFG)) if pkg_name
|
||||
|
||||
setup(
|
||||
version=config('WHEEL_VERSION', '0.0.0'),
|
||||
build=config('WHEEL_BUILD', '000'),
|
||||
author_email=config('WHEEL_AUTHOR_EMAIL', 'openvino_pushbot@intel.com'),
|
||||
name=pkg_name,
|
||||
license=config('WHEEL_LICENCE_TYPE', 'OSI Approved :: Apache Software License'),
|
||||
|
Loading…
Reference in New Issue
Block a user