Enabled debug build for Python wheels (#19197)

This commit is contained in:
Ilya Lavrenov 2023-08-17 16:45:18 +04:00 committed by GitHub
parent 75b48e9cdc
commit e49b208393
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 86 additions and 36 deletions

View File

@ -24,21 +24,24 @@ macro(ov_archive_cpack_set_dirs)
set(OV_CPACK_DEVREQDIR tools)
set(OV_CPACK_PYTHONDIR python)
if(USE_BUILD_TYPE_SUBFOLDER)
set(build_type ${CMAKE_BUILD_TYPE})
else()
set(build_type $<CONFIG>)
endif()
if(WIN32)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_WHEEL_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/Release)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
elseif(APPLE)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_WHEEL_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/Release)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
else()
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER})
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER})
set(OV_WHEEL_RUNTIMEDIR ${OV_CPACK_RUNTIMEDIR})
endif()
set(OV_CPACK_PLUGINSDIR ${OV_CPACK_RUNTIMEDIR})

View File

@ -19,7 +19,6 @@ macro(ov_common_libraries_cpack_set_dirs)
else()
set(OV_CPACK_RUNTIMEDIR ${CMAKE_INSTALL_LIBDIR})
endif()
set(OV_WHEEL_RUNTIMEDIR ${OV_CPACK_RUNTIMEDIR})
set(OV_CPACK_ARCHIVEDIR ${CMAKE_INSTALL_LIBDIR})
if(CPACK_GENERATOR MATCHES "^(CONAN|VCPKG)$")
set(OV_CPACK_IE_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/openvino)

View File

@ -24,7 +24,6 @@ macro(ov_debian_cpack_set_dirs)
endif()
endif()
set(OV_CPACK_LIBRARYDIR ${OV_CPACK_RUNTIMEDIR})
set(OV_WHEEL_RUNTIMEDIR ${OV_CPACK_RUNTIMEDIR})
set(OV_CPACK_ARCHIVEDIR ${OV_CPACK_RUNTIMEDIR})
set(OV_CPACK_PLUGINSDIR ${OV_CPACK_RUNTIMEDIR}/openvino-${OpenVINO_VERSION})
set(OV_CPACK_IE_CMAKEDIR ${OV_CPACK_RUNTIMEDIR}/cmake/inferenceengine${OpenVINO_VERSION})

View File

@ -63,21 +63,24 @@ macro(ov_archive_cpack_set_dirs)
set(OV_CPACK_DEVREQDIR tools)
set(OV_CPACK_PYTHONDIR python)
if(USE_BUILD_TYPE_SUBFOLDER)
set(build_type ${CMAKE_BUILD_TYPE})
else()
set(build_type $<CONFIG>)
endif()
if(WIN32)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_WHEEL_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/Release)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_RUNTIMEDIR runtime/bin/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
elseif(APPLE)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/$<CONFIG>)
set(OV_WHEEL_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/Release)
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER}/${build_type})
else()
set(OV_CPACK_LIBRARYDIR runtime/lib/${ARCH_FOLDER})
set(OV_CPACK_RUNTIMEDIR runtime/lib/${ARCH_FOLDER})
set(OV_CPACK_ARCHIVEDIR runtime/lib/${ARCH_FOLDER})
set(OV_WHEEL_RUNTIMEDIR ${OV_CPACK_RUNTIMEDIR})
endif()
set(OV_CPACK_PLUGINSDIR ${OV_CPACK_RUNTIMEDIR})

View File

@ -15,7 +15,6 @@ macro(ov_rpm_cpack_set_dirs)
set(OV_CPACK_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
set(OV_CPACK_LIBRARYDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_CPACK_RUNTIMEDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_WHEEL_RUNTIMEDIR ${OV_CPACK_RUNTIMEDIR})
set(OV_CPACK_ARCHIVEDIR ${CMAKE_INSTALL_LIBDIR})
set(OV_CPACK_PLUGINSDIR ${CMAKE_INSTALL_LIBDIR}/openvino-${OpenVINO_VERSION})
set(OV_CPACK_IE_CMAKEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/inferenceengine${OpenVINO_VERSION})

View File

@ -5,7 +5,7 @@
pc_path=${pcfiledir}
prefix=${pc_path}/@PKGCONFIG_OpenVINO_PREFIX@
exec_prefix=${prefix}/@OV_WHEEL_RUNTIMEDIR@
exec_prefix=${prefix}/@OV_CPACK_RUNTIMEDIR@
libdir=${exec_prefix}
include_prefix=${prefix}/@OV_CPACK_INCLUDEDIR@

View File

@ -236,6 +236,12 @@ macro(ov_define_setup_py_packaging_vars)
endif()
set(PUGIXML_LIBS_DIR runtime/3rdparty/pugixml/lib)
if(USE_BUILD_TYPE_SUBFOLDER)
set(build_type ${CMAKE_BUILD_TYPE})
else()
set(build_type $<CONFIG>)
endif()
# define setup.py running environment
set(setup_py_env ${CMAKE_COMMAND} -E env
# for cross-compilation
@ -248,8 +254,10 @@ macro(ov_define_setup_py_packaging_vars)
OPENVINO_PYTHON_BINARY_DIR=${OpenVINOPython_BINARY_DIR}
# to create proper directories for BA, OVC tools
CPACK_GENERATOR=${CPACK_GENERATOR}
# propogate build type
BUILD_TYPE=${build_type}
# variables to reflect cpack locations
OV_RUNTIME_LIBS_DIR=${OV_WHEEL_RUNTIMEDIR}
OV_RUNTIME_LIBS_DIR=${OV_CPACK_RUNTIMEDIR}
TBB_LIBS_DIR=${TBB_LIBS_DIR}
PUGIXML_LIBS_DIR=${PUGIXML_LIBS_DIR}
PY_PACKAGES_DIR=${PY_PACKAGES_DIR})

View File

@ -28,7 +28,6 @@ WHEEL_LIBS_PACKAGE = "openvino.libs"
PYTHON_VERSION = f"python{sys.version_info.major}.{sys.version_info.minor}"
LIBS_DIR = "bin" if platform.system() == "Windows" else "lib"
CONFIG = "Release" if platform.system() in {"Windows", "Darwin"} else ""
machine = platform.machine()
if machine == "x86_64" or machine == "AMD64":
@ -47,6 +46,7 @@ BUILD_BASE = f"{WORKING_DIR}/build_{PYTHON_VERSION}"
OPENVINO_SOURCE_DIR = SCRIPT_DIR.parents[3]
OPENVINO_BINARY_DIR = os.getenv("OPENVINO_BINARY_DIR")
OPENVINO_PYTHON_BINARY_DIR = os.getenv("OPENVINO_PYTHON_BINARY_DIR", "python_build")
CONFIG = os.getenv("BUILD_TYPE", "Release")
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}")
PUGIXML_LIBS_DIR = os.getenv("PUGIXML_LIBS_DIR", f"runtime/3rdparty/pugixml/{LIBS_DIR}")
@ -255,7 +255,7 @@ class CustomBuild(build):
self.spawn(["cmake", f"-DOpenVINODeveloperPackage_DIR={OPENVINO_BINARY_DIR}",
f"-DPYTHON_EXECUTABLE={sys.executable}",
f"-DCPACK_GENERATOR={CPACK_GENERATOR}",
"-DCMAKE_BUILD_TYPE=Release",
f"-DCMAKE_BUILD_TYPE={CONFIG}",
"-DENABLE_WHEEL=OFF",
self.cmake_args,
"-S", source_dir,
@ -263,13 +263,13 @@ class CustomBuild(build):
self.announce(f"Building {comp} project", level=3)
self.spawn(["cmake", "--build", binary_dir,
"--config", "Release",
"--config", CONFIG,
"--parallel", str(self.jobs)])
self.announce(f"Installing {comp}", level=3)
self.spawn(["cmake", "--install", binary_dir,
"--prefix", prefix,
"--config", "Release",
"--config", CONFIG,
"--strip",
"--component", cpack_comp_name])

View File

@ -183,7 +183,7 @@ if(THREADING MATCHES "^(TBB|TBB_AUTO)$" AND
set(pkg_config_tbb_lib_dir "${IE_TBBROOT_INSTALL}/${tbb_libs_dir}")
elseif(tbb_downloaded)
set(IE_TBB_DIR_INSTALL "runtime/3rdparty/tbb/")
set(IE_TBB_DIR_INSTALL "runtime/3rdparty/tbb")
if(WIN32)
install(DIRECTORY "${TBBROOT}/bin"

View File

@ -266,20 +266,35 @@ if(ENABLE_PKGCONFIG_GEN)
file(RELATIVE_PATH PKGCONFIG_OpenVINO_PREFIX "/${OV_CPACK_RUNTIMEDIR}/pkgconfig" "/")
set(pkgconfig_in "${OpenVINO_SOURCE_DIR}/cmake/templates/openvino.pc.in")
set(pkgconfig_out "${OpenVINO_BINARY_DIR}/share/openvino.pc")
configure_file("${pkgconfig_in}" "${pkgconfig_out}" @ONLY)
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.20 AND OV_GENERATOR_MULTI_CONFIG)
set(pkgconfig_out "${OpenVINO_BINARY_DIR}/share/$<CONFIG>/openvino.pc")
else()
set(pkgconfig_out "${OpenVINO_BINARY_DIR}/share/openvino.pc")
endif()
install(FILES "${pkgconfig_out}"
DESTINATION "${OV_CPACK_RUNTIMEDIR}/pkgconfig"
COMPONENT ${OV_CPACK_COMP_CORE_DEV})
if (PKG_CONFIG_VERSION_STRING VERSION_LESS 0.29)
if(PKG_CONFIG_VERSION_STRING VERSION_LESS 0.29)
set(pkgconfig_option "--exists")
else()
set(pkgconfig_option "--validate")
endif()
add_custom_command(TARGET openvino PRE_BUILD
COMMAND "${CMAKE_COMMAND}" --config $<CONFIG>
-D PKG_CONFIG_IN_FILE=${pkgconfig_in}
-D PKG_CONFIG_OUT_FILE=${pkgconfig_out}
-D PKGCONFIG_OpenVINO_PREFIX=${PKGCONFIG_OpenVINO_PREFIX}
-D OV_CPACK_RUNTIMEDIR=${OV_CPACK_RUNTIMEDIR}
-D OV_CPACK_INCLUDEDIR=${OV_CPACK_INCLUDEDIR}
-D OpenVINO_VERSION=${OpenVINO_VERSION}
-D PKGCONFIG_OpenVINO_DEFINITIONS=${PKGCONFIG_OpenVINO_DEFINITIONS}
-D PKGCONFIG_OpenVINO_FRONTENDS=${PKGCONFIG_OpenVINO_FRONTENDS}
-D PKGCONFIG_OpenVINO_PRIVATE_DEPS=${PKGCONFIG_OpenVINO_PRIVATE_DEPS}
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/pkg_config_gen.cmake"
COMMAND "${PKG_CONFIG_EXECUTABLE}" "${pkgconfig_option}" "${pkgconfig_out}"
COMMENT "[pkg-config] validating openvino.pc"
COMMENT "[pkg-config] creation and validation of openvino.pc"
VERBATIM)
install(FILES "${pkgconfig_out}"
DESTINATION "${OV_CPACK_RUNTIMEDIR}/pkgconfig"
COMPONENT ${OV_CPACK_COMP_CORE_DEV})
endif()

View File

@ -0,0 +1,24 @@
# Copyright (C) 2018-2023 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
foreach(var PKG_CONFIG_IN_FILE PKG_CONFIG_OUT_FILE
PKGCONFIG_OpenVINO_PREFIX OV_CPACK_RUNTIMEDIR
OV_CPACK_INCLUDEDIR OpenVINO_VERSION
PKGCONFIG_OpenVINO_DEFINITIONS
PKGCONFIG_OpenVINO_FRONTENDS
PKGCONFIG_OpenVINO_PRIVATE_DEPS)
if(NOT DEFINED ${var})
message(FATAL_ERROR "Variable ${var} is not defined")
endif()
endforeach()
# create command
if(NOT EXISTS "${PKG_CONFIG_IN_FILE}")
message(FATAL_ERROR "${PKG_CONFIG_IN_FILE} does not exist")
endif()
# execute
configure_file("${PKG_CONFIG_IN_FILE}" "${PKG_CONFIG_OUT_FILE}" @ONLY)