From 06781f8c81a33766804a9a0c37e4c16bd2ed6232 Mon Sep 17 00:00:00 2001 From: Yogesh Tyagi Date: Mon, 18 Mar 2024 14:58:33 +0800 Subject: openvino-inference-engine : upgrade 2023.3.0 -> 2024.0.0 - Removed the Cython patch, which is no longer relevant as Legacy IE python API has been removed: https://github.com/openvinotoolkit/openvino/commit/a561a2a484049cc63fd0959646ef5c1cb8f3c2e6 - Remove cython dependency as well from recipe - Remove the switch disabling MLAS support. It's enabled by default. Fetch the submodule as well and include the file pointing to its Apache-2.0 license in LIC_FILES_CHKSUM. - Update conditional check to exclude directories which have "/usr/include" in them to not add /usr/include as well. - Backport a patch which solves the build failure caused by setting the "ENABLE_OV_ONNX_FRONTEND" option to "OFF" Release Notes: https://github.com/openvinotoolkit/openvino/releases/tag/2024.0.0 Signed-off-by: Yogesh Tyagi Signed-off-by: Anuj Mittal --- ...-the-build-failure-caused-by-setting-the-.patch | 43 +++++++ .../0001-cmake-fix-build-when-using-sysroot.patch | 32 +++++ ...working-directory-to-source-to-workaround.patch | 29 ----- .../opencv/openvino-inference-engine_2023.3.0.bb | 140 -------------------- .../opencv/openvino-inference-engine_2024.0.0.bb | 143 +++++++++++++++++++++ 5 files changed, 218 insertions(+), 169 deletions(-) create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-CPU-Solving-the-build-failure-caused-by-setting-the-.patch create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-cmake-fix-build-when-using-sysroot.patch delete mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/files/0002-Change-the-working-directory-to-source-to-workaround.patch delete mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2023.3.0.bb create mode 100644 dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2024.0.0.bb diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-CPU-Solving-the-build-failure-caused-by-setting-the-.patch b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-CPU-Solving-the-build-failure-caused-by-setting-the-.patch new file mode 100644 index 00000000..d1851406 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-CPU-Solving-the-build-failure-caused-by-setting-the-.patch @@ -0,0 +1,43 @@ +From b8c3bae71e6d3417ade5cb537cb1785fd75a75c8 Mon Sep 17 00:00:00 2001 +From: Razvan Apetroaie <117895604+razvanapetroaie@users.noreply.github.com> +Date: Tue, 20 Feb 2024 02:28:14 +0200 +Subject: [PATCH] [CPU] Solving the build failure caused by setting the + "ENABLE_OV_ONNX_FRONTEND" option to "OFF" (#22934) + +### Details: +See the [ticket +description](https://jira.devtools.intel.com/browse/CVS-132119). The +solution was checked only on a local setup on Ubuntu, if there's a way +to check that using the CI please let me know (or if you could run the +job and paste the link in the comments I would be grateful). + +Disclaimer: I'm not a CPU plugin developer, so I can't tell for sure if +this is the ideal fix and no side effects are introduced. Please take +that into account when reviewing/merging. + +### Tickets: + - [CVS-132119](https://jira.devtools.intel.com/browse/CVS-132119) + +Upstream-Status: Backport [https://github.com/openvinotoolkit/openvino/commit/b8c3bae71e6d3417ade5cb537cb1785fd75a75c8] + +Signed-off-by: Yogesh Tyagi +--- + src/plugins/intel_cpu/tests/functional/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/plugins/intel_cpu/tests/functional/CMakeLists.txt b/src/plugins/intel_cpu/tests/functional/CMakeLists.txt +index db5ae8d01c..6941cb528d 100644 +--- a/src/plugins/intel_cpu/tests/functional/CMakeLists.txt ++++ b/src/plugins/intel_cpu/tests/functional/CMakeLists.txt +@@ -16,7 +16,7 @@ set(LINK_LIBRARIES funcSharedTests cpuSpecificRtInfo openvino::snippets ov_snipp + if(ENABLE_OV_ONNX_FRONTEND) + list(APPEND DEFINES TEST_MODELS="${TEST_MODEL_ZOO}") + else() +- set(EXCLUDED_SOURCE_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/extension ${CMAKE_CURRENT_SOURCE_DIR}/shared_tests_instances/onnx) ++ set(EXCLUDED_SOURCE_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/custom/extension ${CMAKE_CURRENT_SOURCE_DIR}/shared_tests_instances/onnx) + endif() + + if(NOT (ARM OR AARCH64)) +-- +2.34.1 + diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-cmake-fix-build-when-using-sysroot.patch b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-cmake-fix-build-when-using-sysroot.patch new file mode 100644 index 00000000..d251f21b --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0001-cmake-fix-build-when-using-sysroot.patch @@ -0,0 +1,32 @@ +From b5dfcf8bc1245e804c847745c237068eb6f19931 Mon Sep 17 00:00:00 2001 +From: Yogesh Tyagi +Date: Fri, 15 Mar 2024 16:28:41 +0800 +Subject: [PATCH] cmake: fix build when using sysroot + +When cross-compiling against a sysroot, system headers will not be at a place +that starts with /usr. Update conditional check to exclude directories +which have "/usr/include" in them to not add /usr/include as well. + +Upstream-Status: Submitted [https://github.com/openvinotoolkit/openvino/pull/23486] + +Signed-off-by: Yogesh Tyagi +--- + src/cmake/ov_parallel.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/cmake/ov_parallel.cmake b/src/cmake/ov_parallel.cmake +index 3793db98e30..819d3410531 100644 +--- a/src/cmake/ov_parallel.cmake ++++ b/src/cmake/ov_parallel.cmake +@@ -296,7 +296,7 @@ function(ov_set_threading_interface_for TARGET_NAME) + if(include_directories) + foreach(include_directory IN LISTS include_directories) + # cannot include /usr/include headers as SYSTEM +- if(NOT "${include_directory}" MATCHES "^/usr.*$") ++ if(NOT "${include_directory}" MATCHES ".*/usr/include.*$") + target_include_directories(${TARGET_NAME} SYSTEM + ${LINK_TYPE} $) + else() +-- +2.34.1 + diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0002-Change-the-working-directory-to-source-to-workaround.patch b/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0002-Change-the-working-directory-to-source-to-workaround.patch deleted file mode 100644 index e6fe3271..00000000 --- a/dynamic-layers/openembedded-layer/recipes-support/opencv/files/0002-Change-the-working-directory-to-source-to-workaround.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a0ea332df477480f90d9dc841faf71f4b5be892e Mon Sep 17 00:00:00 2001 -From: Anuj Mittal -Date: Wed, 29 Nov 2023 12:45:59 +0530 -Subject: [PATCH 2/4] Change the working directory to source to workaround - cython embedding absolute path to the pyx file in output. - -Upstream-Status: Inappropriate [OE build specific] - -Signed-off-by: Anuj Mittal ---- - .../python/src/compatibility/openvino/cmake/UseCython.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/bindings/python/src/compatibility/openvino/cmake/UseCython.cmake b/src/bindings/python/src/compatibility/openvino/cmake/UseCython.cmake -index 03a208f03c2..be9af591b34 100644 ---- a/src/bindings/python/src/compatibility/openvino/cmake/UseCython.cmake -+++ b/src/bindings/python/src/compatibility/openvino/cmake/UseCython.cmake -@@ -258,7 +258,7 @@ function( compile_pyx _name generated_file ) - add_custom_command( OUTPUT ${_generated_file} - COMMAND ${CYTHON_EXECUTABLE} - ARGS ${cxx_arg} ${include_directory_arg} ${version_arg} -- ${annotate_arg} ${no_docstrings_arg} ${cython_debug_arg} ${CYTHON_FLAGS} -+ ${annotate_arg} ${no_docstrings_arg} ${cython_debug_arg} ${CYTHON_FLAGS} -w ${CMAKE_CURRENT_SOURCE_DIR} - --output-file ${_generated_file} ${pyx_locations} - DEPENDS ${pyx_locations} ${pxd_dependencies} ${pxi_dependencies} - IMPLICIT_DEPENDS ${pyx_lang} ${c_header_dependencies} --- -2.34.1 - diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2023.3.0.bb b/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2023.3.0.bb deleted file mode 100644 index e465ab3e..00000000 --- a/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2023.3.0.bb +++ /dev/null @@ -1,140 +0,0 @@ -SUMMARY = "OpenVINO(TM) Toolkit - Deep Learning Deployment Toolkit" -HOMEPAGE = "https://github.com/opencv/dldt" -DESCRIPTION = "This toolkit allows developers to deploy pre-trained \ -deep learning models through a high-level C++ Inference Engine API \ -integrated with application logic." - -SRC_URI = "git://github.com/openvinotoolkit/openvino.git;protocol=https;name=openvino;branch=releases/2023/3;lfs=0 \ - git://github.com/openvinotoolkit/oneDNN.git;protocol=https;destsuffix=git/src/plugins/intel_cpu/thirdparty/onednn;name=mkl;nobranch=1 \ - git://github.com/oneapi-src/oneDNN.git;protocol=https;destsuffix=git/src/plugins/intel_gpu/thirdparty/onednn_gpu;name=onednn;nobranch=1 \ - git://github.com/herumi/xbyak.git;protocol=https;destsuffix=git/thirdparty/xbyak;name=xbyak;branch=master \ - git://github.com/nlohmann/json.git;protocol=https;destsuffix=git/thirdparty/json/nlohmann_json;name=json;branch=develop \ - git://github.com/opencv/ade.git;protocol=https;destsuffix=git/thirdparty/ade;name=ade;nobranch=1 \ - git://github.com/protocolbuffers/protobuf.git;protocol=https;destsuffix=git/thirdparty/protobuf/protobuf;name=protobuf;branch=3.20.x \ - git://github.com/gflags/gflags.git;protocol=https;destsuffix=git/thirdparty/gflags/gflags;name=gflags;nobranch=1 \ - git://github.com/madler/zlib.git;protocol=https;destsuffix=git/thirdparty/zlib/zlib;name=zlib;nobranch=1 \ - git://github.com/nodejs/node-api-headers.git;protocol=https;destsuffix=git/node-api-headers-src;name=node-api-headers;nobranch=1 \ - git://github.com/nodejs/node-addon-api.git;protocol=https;destsuffix=git/node-addon-api-src;name=node-addon-api;nobranch=1 \ - file://0001-cmake-yocto-specific-tweaks-to-the-build-process.patch \ - file://0002-Change-the-working-directory-to-source-to-workaround.patch \ - file://0003-cmake-Fix-overloaded-virtual-error.patch \ - file://0004-protobuf-allow-target-protoc-to-be-built.patch \ - " - -SRCREV_openvino = "ceeafaf64f346c6f14a67c612e131da5c27ef620" -SRCREV_mkl = "cb3060bbf4694e46a1359a3d4dfe70500818f72d" -SRCREV_onednn = "cb77937ffcf5e83b5d1cf2940c94e8b508d8f7b4" -SRCREV_xbyak = "740dff2e866f3ae1a70dd42d6e8836847ed95cc2" -SRCREV_json = "9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03" -SRCREV_ade = "0e8a2ccdd34f29dba55894f5f3c5179809888b9e" -SRCREV_protobuf = "fe271ab76f2ad2b2b28c10443865d2af21e27e0e" -SRCREV_gflags = "e171aa2d15ed9eb17054558e0b3a6a413bb01067" -SRCREV_zlib = "04f42ceca40f73e2978b50e93806c2a18c1281fc" -SRCREV_node-api-headers = "186e04b5e40e54d7fd1655bc67081cc483f12488" -SRCREV_node-addon-api = "39a25bf27788ff7a7ea5c64978c4dcd1e7b9d80d" -SRCREV_FORMAT = "openvino_mkl_onednn_xbyak_json_ade_protobuf_gflags_zlib_node-api-headers_node-addon-api" - -LICENSE = "Apache-2.0 & MIT & BSD-3-Clause & Zlib" -LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ - file://thirdparty/xbyak/COPYRIGHT;md5=3c98edfaa50a86eeaef4c6109e803f16 \ - file://thirdparty/cnpy/LICENSE;md5=689f10b06d1ca2d4b1057e67b16cd580 \ - file://thirdparty/json/nlohmann_json/LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588 \ - file://thirdparty/ade/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ - file://thirdparty/gflags/gflags/COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df \ - file://thirdparty/zlib/zlib/LICENSE;md5=b51a40671bc46e961c0498897742c0b8 \ - file://src/plugins/intel_cpu/thirdparty/onednn/LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ - file://src/plugins/intel_gpu/thirdparty/onednn_gpu/LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ - file://node-api-headers-src/LICENSE;md5=6adb2909701d4605b4b2ae1a9b25d8bd \ - file://node-addon-api-src/LICENSE.md;md5=0492ef29a9d558a3e9660e7accc9ca6a \ -" - -inherit cmake python3native pkgconfig qemu - -S = "${WORKDIR}/git" -EXTRA_OECMAKE += " \ - -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ - -DENABLE_OPENCV=OFF \ - -DENABLE_INTEL_GNA=OFF \ - -DENABLE_SYSTEM_TBB=ON \ - -DPYTHON_EXECUTABLE=${PYTHON} \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DTHREADING=TBB -DTBB_DIR="${STAGING_LIBDIR}/cmake/TBB" \ - -DTREAT_WARNING_AS_ERROR=FALSE \ - -DENABLE_DATA=FALSE \ - -DENABLE_SYSTEM_PUGIXML=TRUE \ - -DENABLE_OV_ONNX_FRONTEND=FALSE \ - -DUSE_BUILD_TYPE_SUBFOLDER=OFF \ - -DENABLE_FUZZING=OFF \ - -DENABLE_TBBBIND_2_5=OFF \ - -DCPACK_GENERATOR=RPM \ - -DENABLE_SYSTEM_FLATBUFFERS=ON \ - -DENABLE_SYSTEM_SNAPPY=ON \ - -DENABLE_MLAS_FOR_CPU=OFF \ - -DFETCHCONTENT_BASE_DIR="${S}" \ - " - -DEPENDS += "\ - flatbuffers-native \ - pugixml \ - python3-pybind11 \ - python3-pybind11-native \ - qemu-native \ - snappy \ - tbb \ - " - -COMPATIBLE_HOST = '(x86_64).*-linux' -COMPATIBLE_HOST:libc-musl = "null" - -PACKAGECONFIG ?= "opencl samples" -PACKAGECONFIG[opencl] = "-DENABLE_INTEL_GPU=TRUE, -DENABLE_INTEL_GPU=FALSE, virtual/opencl-icd opencl-headers opencl-clhpp," -PACKAGECONFIG[python3] = "-DENABLE_PYTHON=ON -DPYTHON_LIBRARY=${PYTHON_LIBRARY} -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR} -DENABLE_PYTHON_PACKAGING=ON, -DENABLE_PYTHON=OFF, python3-cython-native patchelf-native, python3 python3-numpy python3-progress python3-cython" -PACKAGECONFIG[samples] = "-DENABLE_SAMPLES=ON -DENABLE_COMPILE_TOOL=ON, -DENABLE_SAMPLES=OFF -DENABLE_COMPILE_TOOL=OFF, opencv" -PACKAGECONFIG[verbose] = "-DVERBOSE_BUILD=1,-DVERBOSE_BUILD=0" - -do_configure:prepend() { - # Dont set PROJECT_ROOT_DIR - sed -i -e 's:\${OpenVINO_SOURCE_DIR}::;' ${S}/src/CMakeLists.txt - - # qemu wrapper that can be used by cmake to run target binaries. - qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" - cat > ${WORKDIR}/qemuwrapper << EOF -#!/bin/sh -$qemu_binary "\$@" -EOF - chmod +x ${WORKDIR}/qemuwrapper -} - -do_install:append() { - rm -rf ${D}${prefix}/install_dependencies - rm -rf ${D}${prefix}/setupvars.sh - - find ${B}/src/plugins/intel_cpu/cross-compiled/ -type f -name *_disp.cpp -exec sed -i -e 's%'"${S}"'%'"${TARGET_DBGSRC_DIR}"'%g' {} + -} - -# Otherwise e.g. ros-openvino-toolkit-dynamic-vino-sample when using dldt-inference-engine uses dldt-inference-engine WORKDIR -# instead of RSS -SSTATE_SCAN_FILES:append = " *.cmake" - -FILES:${PN} += "\ - ${libdir}/openvino-${PV}/lib*${SOLIBSDEV} \ - ${libdir}/openvino-${PV}/plugins.xml \ - ${libdir}/openvino-${PV}/cache.json \ - " - -# Move inference engine samples into a separate package -PACKAGES =+ "${PN}-samples" - -FILES:${PN}-samples = "${datadir}/openvino \ - ${bindir} \ - ${libdir}/libformat_reader.a \ - ${libdir}/libopencv_c_wrapper.a \ - " -RDEPENDS:${PN}-samples += "python3-core" - -# Package for inference engine python API -PACKAGES =+ "${PN}-python3" - -FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}" - -UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+\.\d+\.\d+))$" diff --git a/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2024.0.0.bb b/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2024.0.0.bb new file mode 100644 index 00000000..94edd1b8 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/opencv/openvino-inference-engine_2024.0.0.bb @@ -0,0 +1,143 @@ +SUMMARY = "OpenVINO(TM) Toolkit - Deep Learning Deployment Toolkit" +HOMEPAGE = "https://github.com/opencv/dldt" +DESCRIPTION = "This toolkit allows developers to deploy pre-trained \ +deep learning models through a high-level C++ Inference Engine API \ +integrated with application logic." + +SRC_URI = "git://github.com/openvinotoolkit/openvino.git;protocol=https;name=openvino;branch=releases/2024/0;lfs=0 \ + git://github.com/openvinotoolkit/oneDNN.git;protocol=https;destsuffix=git/src/plugins/intel_cpu/thirdparty/onednn;name=mkl;nobranch=1 \ + git://github.com/oneapi-src/oneDNN.git;protocol=https;destsuffix=git/src/plugins/intel_gpu/thirdparty/onednn_gpu;name=onednn;nobranch=1 \ + git://github.com/herumi/xbyak.git;protocol=https;destsuffix=git/thirdparty/xbyak;name=xbyak;branch=master \ + git://github.com/nlohmann/json.git;protocol=https;destsuffix=git/thirdparty/json/nlohmann_json;name=json;branch=develop \ + git://github.com/opencv/ade.git;protocol=https;destsuffix=git/thirdparty/ade;name=ade;nobranch=1 \ + git://github.com/protocolbuffers/protobuf.git;protocol=https;destsuffix=git/thirdparty/protobuf/protobuf;name=protobuf;branch=3.20.x \ + git://github.com/gflags/gflags.git;protocol=https;destsuffix=git/thirdparty/gflags/gflags;name=gflags;nobranch=1 \ + git://github.com/madler/zlib.git;protocol=https;destsuffix=git/thirdparty/zlib/zlib;name=zlib;nobranch=1 \ + git://github.com/openvinotoolkit/mlas.git;protocol=https;destsuffix=git/src/plugins/intel_cpu/thirdparty/mlas;name=mlas;nobranch=1 \ + git://github.com/nodejs/node-api-headers.git;protocol=https;destsuffix=git/node-api-headers-src;name=node-api-headers;nobranch=1 \ + git://github.com/nodejs/node-addon-api.git;protocol=https;destsuffix=git/node-addon-api-src;name=node-addon-api;nobranch=1 \ + file://0001-cmake-yocto-specific-tweaks-to-the-build-process.patch \ + file://0003-cmake-Fix-overloaded-virtual-error.patch \ + file://0004-protobuf-allow-target-protoc-to-be-built.patch \ + file://0001-cmake-fix-build-when-using-sysroot.patch \ + file://0001-CPU-Solving-the-build-failure-caused-by-setting-the-.patch \ + " + +SRCREV_openvino = "34caeefd07800b59065345d651949efbe8ab6649" +SRCREV_mkl = "f82148befdbdc9576ec721c9d500155ee4de8060" +SRCREV_onednn = "494af5f9921bdae98f1a0e2955fa7d76ff386c4f" +SRCREV_xbyak = "740dff2e866f3ae1a70dd42d6e8836847ed95cc2" +SRCREV_json = "9cca280a4d0ccf0c08f47a99aa71d1b0e52f8d03" +SRCREV_ade = "0e8a2ccdd34f29dba55894f5f3c5179809888b9e" +SRCREV_protobuf = "fe271ab76f2ad2b2b28c10443865d2af21e27e0e" +SRCREV_gflags = "e171aa2d15ed9eb17054558e0b3a6a413bb01067" +SRCREV_zlib = "09155eaa2f9270dc4ed1fa13e2b4b2613e6e4851" +SRCREV_mlas = "d1bc25ec4660cddd87804fcf03b2411b5dfb2e94" +SRCREV_node-api-headers = "186e04b5e40e54d7fd1655bc67081cc483f12488" +SRCREV_node-addon-api = "39a25bf27788ff7a7ea5c64978c4dcd1e7b9d80d" +SRCREV_FORMAT = "openvino_mkl_onednn_xbyak_json_ade_protobuf_gflags_zlib_node-api-headers_node-addon-api_mlas" + +LICENSE = "Apache-2.0 & MIT & BSD-3-Clause & Zlib" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://thirdparty/xbyak/COPYRIGHT;md5=3c98edfaa50a86eeaef4c6109e803f16 \ + file://thirdparty/cnpy/LICENSE;md5=689f10b06d1ca2d4b1057e67b16cd580 \ + file://thirdparty/json/nlohmann_json/LICENSE.MIT;md5=f969127d7b7ed0a8a63c2bbeae002588 \ + file://thirdparty/ade/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \ + file://thirdparty/gflags/gflags/COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df \ + file://thirdparty/zlib/zlib/LICENSE;md5=b51a40671bc46e961c0498897742c0b8 \ + file://src/plugins/intel_cpu/thirdparty/mlas/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327 \ + file://src/plugins/intel_cpu/thirdparty/onednn/LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ + file://src/plugins/intel_gpu/thirdparty/onednn_gpu/LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ + file://node-api-headers-src/LICENSE;md5=6adb2909701d4605b4b2ae1a9b25d8bd \ + file://node-addon-api-src/LICENSE.md;md5=0492ef29a9d558a3e9660e7accc9ca6a \ +" + +inherit cmake python3native pkgconfig qemu + +S = "${WORKDIR}/git" +EXTRA_OECMAKE += " \ + -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ + -DENABLE_OPENCV=OFF \ + -DENABLE_INTEL_GNA=OFF \ + -DENABLE_SYSTEM_TBB=ON \ + -DPYTHON_EXECUTABLE=${PYTHON} \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DTHREADING=TBB -DTBB_DIR="${STAGING_LIBDIR}/cmake/TBB" \ + -DTREAT_WARNING_AS_ERROR=FALSE \ + -DENABLE_DATA=FALSE \ + -DENABLE_SYSTEM_PUGIXML=TRUE \ + -DENABLE_OV_ONNX_FRONTEND=FALSE \ + -DUSE_BUILD_TYPE_SUBFOLDER=OFF \ + -DENABLE_FUZZING=OFF \ + -DENABLE_TBBBIND_2_5=OFF \ + -DCPACK_GENERATOR=RPM \ + -DENABLE_SYSTEM_FLATBUFFERS=ON \ + -DENABLE_SYSTEM_SNAPPY=ON \ + -DFETCHCONTENT_BASE_DIR="${S}" \ + " + +DEPENDS += "\ + flatbuffers-native \ + pugixml \ + python3-pybind11 \ + python3-pybind11-native \ + qemu-native \ + snappy \ + tbb \ + " + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = "null" + +PACKAGECONFIG ?= "opencl samples" +PACKAGECONFIG[opencl] = "-DENABLE_INTEL_GPU=TRUE, -DENABLE_INTEL_GPU=FALSE, virtual/opencl-icd opencl-headers opencl-clhpp," +PACKAGECONFIG[python3] = "-DENABLE_PYTHON=ON -DPYTHON_LIBRARY=${PYTHON_LIBRARY} -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR} -DENABLE_PYTHON_PACKAGING=ON, -DENABLE_PYTHON=OFF, patchelf-native, python3 python3-numpy python3-progress" +PACKAGECONFIG[samples] = "-DENABLE_SAMPLES=ON -DENABLE_COMPILE_TOOL=ON, -DENABLE_SAMPLES=OFF -DENABLE_COMPILE_TOOL=OFF, opencv" +PACKAGECONFIG[verbose] = "-DVERBOSE_BUILD=1,-DVERBOSE_BUILD=0" + +do_configure:prepend() { + # Dont set PROJECT_ROOT_DIR + sed -i -e 's:\${OpenVINO_SOURCE_DIR}::;' ${S}/src/CMakeLists.txt + + # qemu wrapper that can be used by cmake to run target binaries. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +do_install:append() { + rm -rf ${D}${prefix}/install_dependencies + rm -rf ${D}${prefix}/setupvars.sh + + find ${B}/src/plugins/intel_cpu/cross-compiled/ -type f -name *_disp.cpp -exec sed -i -e 's%'"${S}"'%'"${TARGET_DBGSRC_DIR}"'%g' {} + +} + +# Otherwise e.g. ros-openvino-toolkit-dynamic-vino-sample when using dldt-inference-engine uses dldt-inference-engine WORKDIR +# instead of RSS +SSTATE_SCAN_FILES:append = " *.cmake" + +FILES:${PN} += "\ + ${libdir}/openvino-${PV}/lib*${SOLIBSDEV} \ + ${libdir}/openvino-${PV}/plugins.xml \ + ${libdir}/openvino-${PV}/cache.json \ + " + +# Move inference engine samples into a separate package +PACKAGES =+ "${PN}-samples" + +FILES:${PN}-samples = "${datadir}/openvino \ + ${bindir} \ + ${libdir}/libformat_reader.a \ + ${libdir}/libopencv_c_wrapper.a \ + " +RDEPENDS:${PN}-samples += "python3-core" + +# Package for inference engine python API +PACKAGES =+ "${PN}-python3" + +FILES:${PN}-python3 = "${PYTHON_SITEPACKAGES_DIR}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P(\d+\.\d+\.\d+))$" -- cgit v1.2.3-54-g00ecf