diff --git a/WORKSPACE b/WORKSPACE index ee2506ed7..7d0f6617f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -375,16 +375,20 @@ http_archive( url = "https://github.com/opencv/opencv/releases/download/3.2.0/opencv-3.2.0-ios-framework.zip", ) -# Building an opencv.xcframework from the OpenCV 4.5.1 sources is necessary for +# Building an opencv.xcframework from the OpenCV 4.5.3 sources is necessary for # MediaPipe iOS Task Libraries to be supported on arm64(M1) Macs. An # `opencv.xcframework` archive has not been released and it is recommended to # build the same from source using a script provided in OpenCV 4.5.0 upwards. +# OpenCV is fixed to version to 4.5.3 since swift support can only be disabled +# from 4.5.3 upwards. This is needed to avoid errors when the library is linked +# in Xcode. Swift support will be added in when the final binary MediaPipe iOS +# Task libraries are built. http_archive( name = "ios_opencv_source", - sha256 = "5fbc26ee09e148a4d494b225d04217f7c913ca1a4d46115b70cca3565d7bbe05", + sha256 = "a61e7a4618d353140c857f25843f39b2abe5f451b018aab1604ef0bc34cd23d5", build_file = "@//third_party:opencv_ios_source.BUILD", type = "zip", - url = "https://github.com/opencv/opencv/archive/refs/tags/4.5.1.zip", + url = "https://github.com/opencv/opencv/archive/refs/tags/4.5.3.zip", ) http_archive( diff --git a/mediapipe/tasks/ios/BUILD b/mediapipe/tasks/ios/BUILD index c839acd84..fb3d57ddd 100644 --- a/mediapipe/tasks/ios/BUILD +++ b/mediapipe/tasks/ios/BUILD @@ -33,20 +33,27 @@ licenses(["notice"]) # will be built with ":MediaPipeTasksCommon_framework" # 2. Task graphs. These will be built with ":MediaPipeTaskGraphs_library". # 3. gpu targets which will be built with the ":MediaPipeTaskGraphs_library". -OBJC_COMMON_DEPS = [ - "//mediapipe/tasks/ios/core:MPPBaseOptions", +# +# Instead of linking options and containers, we link their helpers to +# `MPPTasksCommon` to avoid duplicated method warnings in categories when text +# and vision frameworks are installed in the same Xcode project. +OBJC_TASK_COMMON_DEPS = [ + "//mediapipe/tasks/ios/core/utils:MPPBaseOptionsHelpers", "//mediapipe/tasks/ios/core:MPPTaskInfo", "//mediapipe/tasks/ios/core:MPPTaskOptions", "//mediapipe/tasks/ios/core:MPPTaskResult", "//mediapipe/tasks/ios/core:MPPTaskRunner", - "//mediapipe/tasks/ios/components/containers:MPPClassificationResult", - "//mediapipe/tasks/ios/components/containers:MPPCategory", + "//mediapipe/tasks/ios/components/containers/utils:MPPClassificationResultHelpers", + "//mediapipe/tasks/ios/components/containers/utils:MPPCategoryHelpers", "//mediapipe/tasks/ios/common/utils:MPPCommonUtils", +] + +CALCULATORS_AND_GRAPHS = [ "//mediapipe/tasks/cc/vision/image_classifier:image_classifier_graph", "//mediapipe/tasks/cc/vision/object_detector:object_detector_graph", "//mediapipe/tasks/cc/text/text_classifier:text_classifier_graph", "//mediapipe/tasks/cc/text/text_embedder:text_embedder_graph", - "//mediapipe/gpu:metal_shared_resources", + "//mediapipe/calculators/core:flow_limiter_calculator", ] strip_api_include_path_prefix( @@ -83,7 +90,9 @@ apple_static_xcframework( # Avoid dependencies of ":MediaPipeTasksCommon_framework" and # ":MediaPipeTaskGraphs_library in order to prevent duplicate symbols error # when the frameworks are imported in iOS projects. - avoid_deps = OBJC_COMMON_DEPS, + avoid_deps = OBJC_TASK_COMMON_DEPS + CALCULATORS_AND_GRAPHS + [ + "//mediapipe/gpu:metal_shared_resources", + ], bundle_name = "MediaPipeTasksText", ios = { "simulator": [ @@ -124,8 +133,8 @@ apple_static_xcframework( # when the frameworks are imported in iOS projects. # Also avoids opencv since it will be built with # ":MediaPipeTaskGraphs_library". - avoid_deps = OBJC_COMMON_DEPS + [ - "@ios_opencv//:OpencvFramework", + avoid_deps = OBJC_TASK_COMMON_DEPS + CALCULATORS_AND_GRAPHS + [ + "//mediapipe/gpu:metal_shared_resources", ], bundle_name = "MediaPipeTasksVision", ios = { @@ -171,14 +180,15 @@ apple_static_library( ], minimum_os_version = MPP_TASK_MINIMUM_OS_VERSION, platform_type = "ios", - deps = [ - "//mediapipe/tasks/cc/text/text_classifier:text_classifier_graph", - "//mediapipe/tasks/cc/text/text_embedder:text_embedder_graph", - "//mediapipe/tasks/cc/vision/image_classifier:image_classifier_graph", - "//mediapipe/tasks/cc/vision/object_detector:object_detector_graph", - "@ios_opencv//:OpencvFramework", + deps = CALCULATORS_AND_GRAPHS + [ "@org_tensorflow//third_party/icu/data:conversion_data", - ], + ] + select({ + "//third_party:opencv_ios_sim_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_x86_64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_sim_fat_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//conditions:default": ["@ios_opencv//:OpencvFramework"], + }), ) apple_static_xcframework( @@ -200,14 +210,5 @@ apple_static_xcframework( minimum_os_versions = { "ios": MPP_TASK_MINIMUM_OS_VERSION, }, - deps = [ - "//mediapipe/tasks/ios/common/utils:MPPCommonUtils", - "//mediapipe/tasks/ios/components/containers:MPPCategory", - "//mediapipe/tasks/ios/components/containers:MPPClassificationResult", - "//mediapipe/tasks/ios/core:MPPBaseOptions", - "//mediapipe/tasks/ios/core:MPPTaskInfo", - "//mediapipe/tasks/ios/core:MPPTaskOptions", - "//mediapipe/tasks/ios/core:MPPTaskResult", - "//mediapipe/tasks/ios/core:MPPTaskRunner", - ], + deps = OBJC_TASK_COMMON_DEPS, ) diff --git a/mediapipe/tasks/ios/MediaPipeTasksText.podspec.template b/mediapipe/tasks/ios/MediaPipeTasksText.podspec.template index 144d36f88..105f1c4f0 100644 --- a/mediapipe/tasks/ios/MediaPipeTasksText.podspec.template +++ b/mediapipe/tasks/ios/MediaPipeTasksText.podspec.template @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.module_name = 'MediaPipeTasksText' s.static_framework = true - s.dependency 'MediaPipeTasksCommon' + s.dependency 'MediaPipeTasksCommon', '${MPP_TASKS_COMMON_VERSION}' s.library = 'c++' s.vendored_frameworks = 'frameworks/MediaPipeTasksText.xcframework' end diff --git a/mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template b/mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template index 373c1768b..4c0c0170b 100644 --- a/mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template +++ b/mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.module_name = 'MediaPipeTasksVision' s.static_framework = true - s.dependency 'MediaPipeTasksCommon' + s.dependency 'MediaPipeTasksCommon', '${MPP_TASKS_COMMON_VERSION}' s.library = 'c++' s.vendored_frameworks = 'frameworks/MediaPipeTasksVision.xcframework' end diff --git a/mediapipe/tasks/ios/build_ios_framework.sh b/mediapipe/tasks/ios/build_ios_framework.sh index bb2fafc1f..1142f08af 100755 --- a/mediapipe/tasks/ios/build_ios_framework.sh +++ b/mediapipe/tasks/ios/build_ios_framework.sh @@ -85,18 +85,6 @@ EOF echo ${OUTPUT_PATH} } -# This function builds a target using the command passed in as argument and -# uses cquery to find the path to the output of the target. -function build_target { - # Build using the command passed as argument. - "${BAZEL}" build $1 - - # Get the path to the output file of the target. - local OUTPUT_PATH=$(get_output_file_path "$1") - - echo ${OUTPUT_PATH} -} - # This function builds 3 the xcframework and associated graph libraries if any # for a given framework name. function build_ios_frameworks_and_libraries { @@ -110,21 +98,24 @@ function build_ios_frameworks_and_libraries { # the order of a few MBs. # Build Task Library xcframework. - local FRAMEWORK_CQUERY_COMMAND="-c opt --apple_generate_dsym=false ${FULL_FRAMEWORK_TARGET}" - IOS_FRAMEWORK_PATH="$(build_target "${FRAMEWORK_CQUERY_COMMAND}")" + local FRAMEWORK_CQUERY_COMMAND="-c opt --apple_generate_dsym=false --define OPENCV=source ${FULL_FRAMEWORK_TARGET}" + ${BAZEL} build ${FRAMEWORK_CQUERY_COMMAND} + IOS_FRAMEWORK_PATH="$(get_output_file_path "${FRAMEWORK_CQUERY_COMMAND}")" # `MediaPipeTasksCommon` pods must also include the task graph libraries which # are to be force loaded. Hence the graph libraies are only built if the framework # name is `MediaPipeTasksCommon`.` case $FRAMEWORK_NAME in "MediaPipeTasksCommon") - local IOS_SIM_FAT_LIBRARY_CQUERY_COMMAND="-c opt --config=ios_sim_fat --apple_generate_dsym=false //mediapipe/tasks/ios:MediaPipeTaskGraphs_library" - IOS_GRAPHS_SIMULATOR_LIBRARY_PATH="$(build_target "${IOS_SIM_FAT_LIBRARY_CQUERY_COMMAND}")" + local IOS_SIM_FAT_LIBRARY_CQUERY_COMMAND="-c opt --config=ios_sim_fat --apple_generate_dsym=false --define OPENCV=source //mediapipe/tasks/ios:MediaPipeTaskGraphs_library" + ${BAZEL} build ${IOS_SIM_FAT_LIBRARY_CQUERY_COMMAND} + IOS_GRAPHS_SIMULATOR_LIBRARY_PATH="$(get_output_file_path "${IOS_SIM_FAT_LIBRARY_CQUERY_COMMAND}")" # Build static library for iOS devices with arch ios_arm64. We don't need to build for armv7 since # our deployment target is iOS 11.0. iOS 11.0 and upwards is not supported by old armv7 devices. - local IOS_DEVICE_LIBRARY_CQUERY_COMMAND="-c opt --config=ios_arm64 --apple_generate_dsym=false //mediapipe/tasks/ios:MediaPipeTaskGraphs_library" - IOS_GRAPHS_DEVICE_LIBRARY_PATH="$(build_target "${IOS_DEVICE_LIBRARY_CQUERY_COMMAND}")" + local IOS_DEVICE_LIBRARY_CQUERY_COMMAND="-c opt --config=ios_arm64 --apple_generate_dsym=false --define OPENCV=source //mediapipe/tasks/ios:MediaPipeTaskGraphs_library" + ${BAZEL} build ${IOS_DEVICE_LIBRARY_CQUERY_COMMAND} + IOS_GRAPHS_DEVICE_LIBRARY_PATH="$(get_output_file_path "${IOS_DEVICE_LIBRARY_CQUERY_COMMAND}")" ;; *) ;; diff --git a/mediapipe/tasks/ios/test/vision/image_classifier/BUILD b/mediapipe/tasks/ios/test/vision/image_classifier/BUILD index b84fb6a7e..6c85f8218 100644 --- a/mediapipe/tasks/ios/test/vision/image_classifier/BUILD +++ b/mediapipe/tasks/ios/test/vision/image_classifier/BUILD @@ -41,7 +41,12 @@ objc_library( "//mediapipe/tasks/ios/common:MPPCommon", "//mediapipe/tasks/ios/test/vision/utils:MPPImageTestUtils", "//mediapipe/tasks/ios/vision/image_classifier:MPPImageClassifier", - ], + ] + select({ + "//third_party:opencv_ios_sim_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_x86_64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//conditions:default": ["@ios_opencv//:OpencvFramework"], + }), ) ios_unit_test( diff --git a/mediapipe/tasks/ios/test/vision/object_detector/BUILD b/mediapipe/tasks/ios/test/vision/object_detector/BUILD index 569fab4de..a5458025e 100644 --- a/mediapipe/tasks/ios/test/vision/object_detector/BUILD +++ b/mediapipe/tasks/ios/test/vision/object_detector/BUILD @@ -41,7 +41,12 @@ objc_library( "//mediapipe/tasks/ios/common:MPPCommon", "//mediapipe/tasks/ios/test/vision/utils:MPPImageTestUtils", "//mediapipe/tasks/ios/vision/object_detector:MPPObjectDetector", - ], + ] + select({ + "//third_party:opencv_ios_sim_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//third_party:opencv_ios_x86_64_source_build": ["@ios_opencv_source//:opencv_xcframework"], + "//conditions:default": ["@ios_opencv//:OpencvFramework"], + }), ) ios_unit_test( diff --git a/mediapipe/tasks/ios/vision/core/BUILD b/mediapipe/tasks/ios/vision/core/BUILD index fe0fba0ef..328d9e892 100644 --- a/mediapipe/tasks/ios/vision/core/BUILD +++ b/mediapipe/tasks/ios/vision/core/BUILD @@ -63,10 +63,5 @@ objc_library( "//third_party/apple_frameworks:UIKit", "@com_google_absl//absl/status:statusor", "@ios_opencv//:OpencvFramework", - ] + select({ - "@//third_party:opencv_ios_sim_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], - "@//third_party:opencv_ios_sim_fat_source_build": ["@ios_opencv_source//:opencv_xcframework"], - "@//third_party:opencv_ios_arm64_source_build": ["@ios_opencv_source//:opencv_xcframework"], - "//conditions:default": [], - }), + ], ) diff --git a/third_party/BUILD b/third_party/BUILD index 60fa73799..f6107106d 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -18,10 +18,10 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") licenses(["notice"]) # Apache License 2.0 -exports_files(["LICENSE"]) - package(default_visibility = ["//visibility:public"]) +exports_files(["LICENSE"]) + cc_library( name = "glog", visibility = ["//visibility:public"], @@ -104,7 +104,7 @@ config_setting( }, values = { "apple_platform_type": "ios", - "ios_multi_cpus": "sim_arm64, x86_64", + "ios_multi_cpus": "sim_arm64,x86_64", }, ) @@ -113,8 +113,8 @@ alias( actual = select({ ":opencv_source_build": ":opencv_cmake", ":opencv_ios_sim_arm64_source_build": "@ios_opencv_source//:opencv", - ":opencv_ios_sim_fat_source_build": "@ios_opencv_source//:opencv", ":opencv_ios_arm64_source_build": "@ios_opencv_source//:opencv", + ":opencv_ios_x86_64_source_build": "@ios_opencv_source//:opencv", "//conditions:default": ":opencv_binary", }), visibility = ["//visibility:public"], diff --git a/third_party/opencv_ios_source.BUILD b/third_party/opencv_ios_source.BUILD index c0cb65908..e46e0be69 100644 --- a/third_party/opencv_ios_source.BUILD +++ b/third_party/opencv_ios_source.BUILD @@ -25,12 +25,14 @@ load( # for MediaPipe iOS Task libraries are built. Shipping with OPENCV built with # Swift support throws linker errors when the MediaPipe framework is used from # an iOS project. +# When building on M1 Macs, cmake version cannot be higher than 3.24.0. This is +# is mentioned in an open issue in the opencv github repo. genrule( name = "build_opencv_xcframework", - srcs = glob(["opencv-4.5.1/**"]), + srcs = glob(["opencv-4.5.3/**"]), outs = ["opencv2.xcframework.zip"], cmd = "&&".join([ - "$(location opencv-4.5.1/platforms/apple/build_xcframework.py) \ + "$(location opencv-4.5.3/platforms/apple/build_xcframework.py) \ --iphonesimulator_archs arm64,x86_64 \ --iphoneos_archs arm64 \ --without dnn \ @@ -90,7 +92,7 @@ cc_library( ":opencv_xcframework_simulator_headers", ], "@//mediapipe:ios_arm64": [ - ":opencv_xcframework_simulator_headers", + ":opencv_xcframework_device_headers", ], # A value from above is chosen arbitarily. "//conditions:default": [ diff --git a/third_party/opencv_ios_source.bzl b/third_party/opencv_ios_source.bzl index e46fb4cac..54bb4d5eb 100644 --- a/third_party/opencv_ios_source.bzl +++ b/third_party/opencv_ios_source.bzl @@ -27,11 +27,12 @@ _OPENCV_SIMULATOR_PLATFORM_DIR_NAME = "ios-arm64_x86_64-simulator" _OPENCV_DEVICE_PLATFORM_DIR_NAME = "ios-arm64" def _select_headers_impl(ctx): + # Should match with `/`. Othewise `ios-arm64` matches with `ios-arm64_x86-64` _files = [ f for f in ctx.files.srcs if (f.basename.endswith(".h") or f.basename.endswith(".hpp")) and - f.dirname.find(ctx.attr.platform) != -1 + f.dirname.find(ctx.attr.platform + "/") != -1 ] return [DefaultInfo(files = depset(_files))] diff --git a/third_party/opencv_ios_xcframework_files.bzl b/third_party/opencv_ios_xcframework_files.bzl index f3ea23883..9253c0f8f 100644 --- a/third_party/opencv_ios_xcframework_files.bzl +++ b/third_party/opencv_ios_xcframework_files.bzl @@ -26,6 +26,7 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video/tracking.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video/legacy/constants_c.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video/background_segm.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video/detail/tracking.detail.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video/video.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Double3.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfByte.h", @@ -33,11 +34,13 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Core.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Size2f.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/world.hpp", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/opencv2-Swift.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/fast_math.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda_types.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/check.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cv_cpu_dispatch.h", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/parallel/backend/parallel_for.tbb.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/parallel/backend/parallel_for.openmp.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/parallel/parallel_backend.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utility.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/softfloat.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cv_cpu_helper.h", @@ -45,6 +48,7 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/msa_macros.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_rvv.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_rvv071.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/simd_utils.impl.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_wasm.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_neon.hpp", @@ -58,6 +62,7 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_sse.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_sse_em.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/hal.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/dualquaternion.inl.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/async.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/bufferpool.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/ovx.hpp", @@ -121,21 +126,22 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_gl.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_definitions.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_hsa_extension.hpp", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clamdblas.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clblas.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clfft.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_core.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_20.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_core_wrappers.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_gl_wrappers.hpp", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clamdfft.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_gl.hpp", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clblas.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clfft.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_core.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/ocl_defs.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/opencl_svm.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/ocl_genbase.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/dualquaternion.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/detail/async_promise.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/detail/exception_ptr.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/simd_intrinsics.hpp", @@ -162,8 +168,10 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/ByteVector.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/imgproc.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/imgproc_c.h", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/bindings.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/hal/interface.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/hal/hal.hpp", + "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/segmentation.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/detail/gcgraph.hpp", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc/types_c.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/highgui.hpp", @@ -230,16 +238,6 @@ OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/ArrayUtil.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfPoint3f.h", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point3d.h", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/x86_64-apple-ios-simulator.swiftinterface", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios-simulator.abi.json", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/x86_64-apple-ios-simulator.swiftdoc", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios-simulator.swiftinterface", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios-simulator.swiftdoc", - "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/x86_64-apple-ios-simulator.abi.json", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Modules/module.modulemap", "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/opencv2", ] @@ -254,6 +252,7 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video/tracking.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video/legacy/constants_c.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video/background_segm.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video/detail/tracking.detail.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video/video.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Double3.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfByte.h", @@ -261,11 +260,13 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Core.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Size2f.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/world.hpp", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/opencv2-Swift.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/fast_math.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda_types.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/check.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cv_cpu_dispatch.h", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/parallel/backend/parallel_for.tbb.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/parallel/backend/parallel_for.openmp.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/parallel/parallel_backend.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utility.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/softfloat.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cv_cpu_helper.h", @@ -273,6 +274,7 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/msa_macros.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_rvv.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_rvv071.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/simd_utils.impl.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_wasm.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_neon.hpp", @@ -286,6 +288,7 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_sse.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_sse_em.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/hal.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/dualquaternion.inl.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/async.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/bufferpool.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/ovx.hpp", @@ -349,21 +352,22 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_gl.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_definitions.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_hsa_extension.hpp", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clamdblas.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clblas.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clfft.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_core.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_svm_20.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_core_wrappers.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_gl_wrappers.hpp", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/opencl_clamdfft.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_gl.hpp", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clblas.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clfft.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_core.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/ocl_defs.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/opencl_svm.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/ocl_genbase.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/dualquaternion.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/detail/async_promise.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/detail/exception_ptr.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/simd_intrinsics.hpp", @@ -390,8 +394,10 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/ByteVector.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/imgproc.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/imgproc_c.h", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/bindings.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/hal/interface.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/hal/hal.hpp", + "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/segmentation.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/detail/gcgraph.hpp", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc/types_c.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/highgui.hpp", @@ -458,11 +464,6 @@ OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/ArrayUtil.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfPoint3f.h", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point3d.h", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios.swiftinterface", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios.swiftdoc", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios.abi.json", - "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/opencv2.swiftmodule/arm64-apple-ios.private.swiftinterface", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Modules/module.modulemap", "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/opencv2", ]