From 8e82e91095fa73b4876780b4213c7caa934c8b77 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:13:14 +0530 Subject: [PATCH 1/7] Added config for fat simulator builds --- .bazelrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.bazelrc b/.bazelrc index 724dd23f..44bc3d0a 100644 --- a/.bazelrc +++ b/.bazelrc @@ -87,6 +87,9 @@ build:ios_fat --config=ios build:ios_fat --ios_multi_cpus=armv7,arm64 build:ios_fat --watchos_cpus=armv7k +build:ios_sim_fat --config=ios +build:ios_sim_fat --ios_multi_cpus=x86_64,sim_arm64 + build:darwin_x86_64 --apple_platform_type=macos build:darwin_x86_64 --macos_minimum_os=10.12 build:darwin_x86_64 --cpu=darwin_x86_64 From 2a0aa86ca9893b35ce4a4c5aa657d72ae0dab922 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:14:41 +0530 Subject: [PATCH 2/7] Added http_archive to download opencv sources --- WORKSPACE | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/WORKSPACE b/WORKSPACE index 76089818..6ea21395 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -375,6 +375,18 @@ 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 +# 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. +http_archive( + name = "ios_opencv_source", + sha256 = "5fbc26ee09e148a4d494b225d04217f7c913ca1a4d46115b70cca3565d7bbe05", + build_file = "@//third_party:opencv_ios_source.BUILD", + type = "zip", + url = "https://github.com/opencv/opencv/archive/refs/tags/4.5.1.zip", +) + http_archive( name = "stblib", strip_prefix = "stb-b42009b3b9d4ca35bc703f5310eedc74f584be58", From ad4513784c77a044d06628ca772932998d411909 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:16:08 +0530 Subject: [PATCH 3/7] Added build file for ios opencv from sources --- third_party/opencv_ios_source.BUILD | 127 +++++ third_party/opencv_ios_source.bzl | 151 ++++++ third_party/opencv_ios_xcframework_files.bzl | 468 +++++++++++++++++++ 3 files changed, 746 insertions(+) create mode 100644 third_party/opencv_ios_source.BUILD create mode 100644 third_party/opencv_ios_source.bzl create mode 100644 third_party/opencv_ios_xcframework_files.bzl diff --git a/third_party/opencv_ios_source.BUILD b/third_party/opencv_ios_source.BUILD new file mode 100644 index 00000000..293846ce --- /dev/null +++ b/third_party/opencv_ios_source.BUILD @@ -0,0 +1,127 @@ +# Description: +# OpenCV xcframework for video/image processing on iOS. + +licenses(["notice"]) # BSD license + +exports_files(["LICENSE"]) + +load( + "@build_bazel_rules_apple//apple:apple.bzl", + "apple_static_xcframework_import", +) + +load( + "@//third_party:opencv_ios_source.bzl", + "select_headers", + "unzip_opencv_xcframework", +) + +# Build opencv2.xcframework from source using a convenience script provided in +# OPENCV sources and zip the xcframework. We only build the modules required by MediaPipe by specifying +# the modules to be ignored as command line arguments. +# We also specify the simulator and device architectures we are building for. +# Currently we only support iOS arm64 (M1 Macs) and x86_64(Intel Macs) simulators +# and arm64 iOS devices. +# Bitcode and Swift support. Swift support will be added in when the final binary +# 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. +genrule( + name = "build_opencv_xcframework", + srcs = glob(["opencv-4.5.1/**"]), + outs = ["opencv2.xcframework.zip"], + cmd = "&&".join([ + "$(location opencv-4.5.1/platforms/apple/build_xcframework.py) \ + --iphonesimulator_archs arm64,x86_64 \ + --iphoneos_archs arm64 \ + --without dnn \ + --without ml \ + --without stitching \ + --without photo \ + --without objdetect \ + --without gapi \ + --without flann \ + --disable PROTOBUF \ + --disable-bitcode \ + --disable-swift \ + --build_only_specified_archs \ + --out $(@D)", + "cd $(@D)", + "zip --symlinks -r opencv2.xcframework.zip opencv2.xcframework", + ]), +) + +# Unzips `opencv2.xcframework.zip` built from source by `build_opencv_xcframework` +# genrule and returns an exhaustive list of all its files including symlinks. +unzip_opencv_xcframework ( + name = "opencv2_unzipped_xcframework_files", + zip_file = "opencv2.xcframework.zip", +) + +# Imports the files of the unzipped `opencv2.xcframework` as an apple static +# framework which can be linked to iOS targets. +apple_static_xcframework_import( + name = "opencv_xcframework", + xcframework_imports = [":opencv2_unzipped_xcframework_files"], + visibility = ["//visibility:public"], +) + +# Filters the headers for each platform in `opencv2.xcframework` which will be +# used as headers in a `cc_library` that can be linked to C++ targets. +select_headers( + name = "opencv_xcframework_device_headers", + srcs = [":opencv_xcframework"], + platform = "ios-arm64", +) + +select_headers( + name = "opencv_xcframework_simulator_headers", + srcs = [":opencv_xcframework"], + platform = "ios-arm64_x86_64-simulator", +) + +# `cc_library` that can be linked to C++ targets to import opencv headers. +cc_library( + name = "opencv", + hdrs = select({ + "@//mediapipe:ios_x86_64" : [ + ":opencv_xcframework_simulator_headers" + ], + "@//mediapipe:ios_sim_arm64" : [ + ":opencv_xcframework_simulator_headers" + ], + "@//mediapipe:ios_arm64" : [ + ":opencv_xcframework_simulator_headers" + ], + # A value from above is chosen arbitarily. + "//conditions:default": [ + ":opencv_xcframework_simulator_headers" + ], + }), + copts = [ + "-std=c++11", + "-x objective-c++", + ], + include_prefix = "opencv2", + linkopts = [ + "-framework AssetsLibrary", + "-framework CoreFoundation", + "-framework CoreGraphics", + "-framework CoreMedia", + "-framework Accelerate", + "-framework CoreImage", + "-framework AVFoundation", + "-framework CoreVideo", + "-framework QuartzCore", + ], + strip_include_prefix = select({ + "@//mediapipe:ios_x86_64" : "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers", + "@//mediapipe:ios_sim_arm64" :"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers", + "@//mediapipe:ios_arm64" : "opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers", + # Random value is selected for default cases. + "//conditions:default": "opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers", + }), + visibility = ["//visibility:public"], + deps = [":opencv_xcframework"], + # data = [":opencv_xcframework"] +) \ No newline at end of file diff --git a/third_party/opencv_ios_source.bzl b/third_party/opencv_ios_source.bzl new file mode 100644 index 00000000..8474c287 --- /dev/null +++ b/third_party/opencv_ios_source.bzl @@ -0,0 +1,151 @@ +# Copyright 2023 The MediaPipe Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Custom rules for building iOS OpenCV xcframework from sources.""" + +load( + "@//third_party:opencv_ios_xcframework_files.bzl", + "OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS", + "OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS", + "OPENCV_XCFRAMEWORK_INFO_PLIST_PATH" +) + +_OPENCV_XCFRAMEWORK_DIR_NAME = "opencv2.xcframework" +_OPENCV_FRAMEWORK_DIR_NAME = "opencv2.framework" +_OPENCV_SIMULATOR_PLATFORM_DIR_NAME = "ios-arm64_x86_64-simulator" +_OPENCV_DEVICE_PLATFORM_DIR_NAME = "ios-arm64" +_OPENCV_PLATFORM_DIR_NAMES = [_OPENCV_SIMULATOR_PLATFORM_DIR_NAME, _OPENCV_DEVICE_PLATFORM_DIR_NAME] + +def _select_headers_impl(ctx): + _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] + return [DefaultInfo(files = depset(_files))] + +# This rule selects only the headers from an apple static xcframework filtered by +# an input platform string. +select_headers = rule( + implementation = _select_headers_impl, + attrs = { + "srcs": attr.label_list(mandatory = True, allow_files=True), + "platform": attr.string(mandatory = True), + }, +) + +# This function declares and returns symlinks to the directories within each platform +# in `opencv2.xcframework` expected to be present. +# The symlinks are created according to the structure stipulated by apple xcframeworks +# do that they can be correctly consumed by `apple_static_xcframework_import` rule. +def _opencv2_directory_symlinks(ctx, platforms): + basenames = ['Resources', 'Headers', 'Modules', 'Versions/Current'] + symlinks = [] + + for platform in platforms: + symlinks = symlinks + [ + ctx.actions.declare_symlink( + _OPENCV_XCFRAMEWORK_DIR_NAME + "/{}/{}/{}".format(platform, _OPENCV_FRAMEWORK_DIR_NAME, name) + ) for name in basenames] + + return symlinks + +# This function declares and returns all the files for each platform expected +# to be present in `opencv2.xcframework` after the unzipping action is run. +def _opencv2_file_list(ctx, platform_filepath_lists): + binary_name = "opencv2" + output_files = [] + binaries_to_symlink = [] + + for (platform, filepaths) in platform_filepath_lists: + for path in filepaths: + file = ctx.actions.declare_file(path) + output_files.append(file) + if path.endswith(binary_name): + symlink_output = ctx.actions.declare_file( + _OPENCV_XCFRAMEWORK_DIR_NAME + "/{}/{}/{}".format( + platform, _OPENCV_FRAMEWORK_DIR_NAME ,binary_name)) + binaries_to_symlink.append((symlink_output, file)) + + return output_files, binaries_to_symlink + +def _unzip_opencv_xcframework_impl(ctx): + + # Array to iterate over the various platforms to declare output files and + # symlinks. + platform_filepath_lists = [ + (_OPENCV_SIMULATOR_PLATFORM_DIR_NAME, OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS), + (_OPENCV_DEVICE_PLATFORM_DIR_NAME, OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS) + ] + + # Gets an exhaustive list of output files which are present in the xcframework. + # Also gets array of `(binary simlink, binary)` pairs which are to be symlinked + # using `ctx.actions.symlink()`. + output_files, binaries_to_symlink = _opencv2_file_list(ctx, platform_filepath_lists) + output_files.append(ctx.actions.declare_file(OPENCV_XCFRAMEWORK_INFO_PLIST_PATH)) + + # xcframeworks have a directory structure in which the `opencv2.framework` folders for each + # platform contain directories which are symlinked to the respective folders of the version + # in use. Simply unzipping the zip of the framework will not make Bazel treat these + # as symlinks. They have to be explicity declared as symlinks using `ctx.actions.declare_symlink()`. + directory_symlinks = _opencv2_directory_symlinks( + ctx, [_OPENCV_SIMULATOR_PLATFORM_DIR_NAME, _OPENCV_DEVICE_PLATFORM_DIR_NAME]) + + output_files = output_files + directory_symlinks + + args = ctx.actions.args() + + # Add the path of the zip file to be unzipped as an argument to be passed to + # `run_shell` action. + args.add(ctx.file.zip_file.path) + + # Add the path to the directory in which the framework is to be unzipped to. + args.add(ctx.file.zip_file.dirname) + + ctx.actions.run_shell( + inputs = [ctx.file.zip_file], + outputs = output_files, + arguments = [args], + progress_message = "Unzipping %s" % ctx.file.zip_file.short_path, + command = "unzip -qq $1 -d $2", + ) + + # The symlinks of the opencv2 binaries for each platform in the xcframework + # have to be symlinked using the `ctx.actions.symlink` unlike the directory + # symlinks which can be expected to be valid when unzipping is completed. + # Otherwise, when tests are run, the linker complaints that the binary is + # not found. + binary_symlink_files = [] + for (symlink_output, binary_file) in binaries_to_symlink: + ctx.actions.symlink(output = symlink_output, target_file = binary_file) + binary_symlink_files.append(symlink_output) + + # Return all the declared output files and symlinks as the output of this + # rule. + return [ DefaultInfo(files=depset(output_files + binary_symlink_files)) ] + + +# This rule unzips an `opencv2.xcframework.zip` created by a genrule that +# invokes a python script in the opencv 4.5.1 github archive. +# It returns all the contents of opencv2.xcframework as a list of files in the +# output. This rule works by explicitly declaring files at hardcoded +# paths in the opencv2 xcframework bundle which are expected to be present when +# the zip file is unzipped. This is a prerequisite since the outputs of this rule +# will be consumed by apple_static_xcframework_import which can only take a list +# of files as inputs. +unzip_opencv_xcframework = rule( + implementation = _unzip_opencv_xcframework_impl, + attrs = { + "zip_file": attr.label(mandatory = True, allow_single_file=True), + }, +) + diff --git a/third_party/opencv_ios_xcframework_files.bzl b/third_party/opencv_ios_xcframework_files.bzl new file mode 100644 index 00000000..19dd6f21 --- /dev/null +++ b/third_party/opencv_ios_xcframework_files.bzl @@ -0,0 +1,468 @@ +# Copyright 2023 The MediaPipe Authors. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""List of file paths in the `opencv2.xcframework` bundle.""" + +OPENCV_XCFRAMEWORK_INFO_PLIST_PATH = "opencv2.xcframework/Info.plist" + +OPENCV_XCFRAMEWORK_IOS_SIMULATOR_FILE_PATHS = [ +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Resources/Info.plist", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Moments.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgproc.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfRect2d.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfFloat4.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfPoint2i.h", +"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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Range.h", +"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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cvstd.inl.hpp", +"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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_avx.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_avx512.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_vsx.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/interface.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_msa.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_cpp.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/hal/intrin_forward.hpp", +"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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/optim.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/va_intel.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cvdef.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/warp.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/filters.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/dynamic_smem.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/reduce.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/utility.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/warp_shuffle.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/border_interpolate.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/transform.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/saturate_cast.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/vec_math.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/functional.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/limits.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/type_traits.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/vec_distance.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/block.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/reduce.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/reduce_key_val.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/color_detail.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/type_traits_detail.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/vec_distance_detail.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/detail/transform_detail.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/emulation.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/color.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/datamov_utils.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/funcattrib.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/common.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/vec_traits.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/simd_functions.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/warp_reduce.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda/scan.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/traits.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opengl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cvstd_wrapper.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda.inl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/eigen.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda_stream_accessor.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/ocl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cuda.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/affine.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/mat.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/logger.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/allocator_stats.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/allocator_stats.impl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/logtag.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/filesystem.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/tls.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/trace.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/instrumentation.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/utils/logger.defines.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/quaternion.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/neon_utils.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/sse_utils.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/version.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/opencl/opencl_info.hpp", +"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_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_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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/matx.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/directx.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/base.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/operations.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/vsx_utils.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/persistence.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/mat.inl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/types_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/cvstd.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/types.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/bindings_utils.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/quaternion.inl.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/saturate.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/core_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core/core.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Converters.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Mat.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Algorithm.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/opencv.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Mat+Converters.h", +"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/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/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", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/features2d.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point2f.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/KeyPoint.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Rect2f.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Float6.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfKeyPoint.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfRect2i.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/FloatVector.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/TermCriteria.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/opencv2.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Int4.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfDMatch.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Scalar.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point3f.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfDouble.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/IntVector.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/RotatedRect.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfFloat6.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/cvconfig.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/DoubleVector.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Size2d.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MinMaxLocResult.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfInt4.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Rect2i.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point2i.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfPoint3.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfRotatedRect.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/DMatch.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/TickMeter.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point3i.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/video.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs/ios.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs/legacy/constants_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs/macosx.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs/imgcodecs.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs/imgcodecs_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/CvType.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/CVObjcUtil.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Size2i.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/imgcodecs.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Float4.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio/registry.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio/cap_ios.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio/legacy/constants_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio/videoio.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio/videoio_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfFloat.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Rect2d.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfPoint2f.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Point2d.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/highgui/highgui.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/highgui/highgui_c.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/Double2.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/CvCamera2.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/features2d/hal/interface.h", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/features2d/features2d.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/videoio.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/opencv_modules.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/core.hpp", +"opencv2.xcframework/ios-arm64_x86_64-simulator/opencv2.framework/Versions/A/Headers/MatOfInt.h", +"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", +] + +OPENCV_XCFRAMEWORK_IOS_DEVICE_FILE_PATHS = [ +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Resources/Info.plist", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Moments.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgproc.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfRect2d.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfFloat4.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfPoint2i.h", +"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/video.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Double3.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfByte.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Range.h", +"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/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", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cvstd.inl.hpp", +"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/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", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_avx.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_avx512.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_vsx.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/interface.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_msa.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_cpp.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/hal/intrin_forward.hpp", +"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/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", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/optim.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/va_intel.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cvdef.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/warp.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/filters.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/dynamic_smem.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/reduce.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/utility.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/warp_shuffle.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/border_interpolate.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/transform.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/saturate_cast.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/vec_math.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/functional.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/limits.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/type_traits.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/vec_distance.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/block.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/reduce.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/reduce_key_val.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/color_detail.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/type_traits_detail.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/vec_distance_detail.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/detail/transform_detail.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/emulation.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/color.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/datamov_utils.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/funcattrib.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/common.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/vec_traits.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/simd_functions.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/warp_reduce.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda/scan.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/traits.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opengl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cvstd_wrapper.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda.inl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/eigen.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda_stream_accessor.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/ocl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cuda.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/affine.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/mat.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/logger.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/allocator_stats.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/allocator_stats.impl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/logtag.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/filesystem.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/tls.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/trace.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/instrumentation.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/utils/logger.defines.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/quaternion.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/neon_utils.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/sse_utils.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/version.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/opencl/opencl_info.hpp", +"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_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_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/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", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/matx.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/directx.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/base.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/operations.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/vsx_utils.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/persistence.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/mat.inl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/types_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/cvstd.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/types.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/bindings_utils.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/quaternion.inl.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/saturate.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/core_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core/core.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Converters.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Mat.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Algorithm.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/opencv.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Mat+Converters.h", +"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/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/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", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/features2d.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point2f.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/KeyPoint.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Rect2f.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Float6.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfKeyPoint.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfRect2i.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/FloatVector.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/TermCriteria.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/opencv2.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Int4.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfDMatch.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Scalar.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point3f.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfDouble.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/IntVector.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/RotatedRect.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfFloat6.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/cvconfig.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/DoubleVector.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Size2d.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MinMaxLocResult.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfInt4.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Rect2i.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point2i.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfPoint3.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfRotatedRect.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/DMatch.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/TickMeter.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point3i.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/video.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs/ios.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs/legacy/constants_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs/macosx.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs/imgcodecs.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs/imgcodecs_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/CvType.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/CVObjcUtil.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Size2i.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/imgcodecs.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Float4.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio/registry.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio/cap_ios.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio/legacy/constants_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio/videoio.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio/videoio_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfFloat.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Rect2d.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfPoint2f.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Point2d.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/highgui/highgui.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/highgui/highgui_c.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/Double2.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/CvCamera2.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/features2d/hal/interface.h", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/features2d/features2d.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/videoio.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/opencv_modules.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/core.hpp", +"opencv2.xcframework/ios-arm64/opencv2.framework/Versions/A/Headers/MatOfInt.h", +"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", +] \ No newline at end of file From aafb0162f484d75991438d14339c9ddeff77743e Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:17:22 +0530 Subject: [PATCH 4/7] Added config settings to select building iOS xcframework from source for certain configs --- third_party/BUILD | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/third_party/BUILD b/third_party/BUILD index 7522bab1..3c3710d9 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -61,10 +61,56 @@ config_setting( visibility = ["//visibility:public"], ) +config_setting( + name = "opencv_ios_arm64_source_build", + values = { + "apple_platform_type": "ios", + "cpu": "ios_arm64" + }, + define_values = { + "OPENCV": "source", + }, +) + +config_setting( + name = "opencv_ios_sim_arm64_source_build", + values = { + "config": "ios_sim_arm64", + }, + define_values = { + "OPENCV": "source", + }, +) + +config_setting( + name = "opencv_ios_x86_64_source_build", + values = { + "apple_platform_type": "ios", + "cpu": "ios_x86_64" + }, + define_values = { + "OPENCV": "source", + }, +) + +config_setting( + name = "opencv_ios_sim_fat_source_build", + values = { + "config": "ios_sim_fat", + }, + define_values = { + "OPENCV": "source", + }, +) + alias( name = "opencv", 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_sim_arm64_source_build" : "@ios_opencv_source//:opencv", + ":opencv_ios_arm64_source_build" : "@ios_opencv_source//:opencv", "//conditions:default": ":opencv_binary", }), visibility = ["//visibility:public"], From bdede4f94ec3971d0c5f1471ff8fefd96b59a433 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:26:29 +0530 Subject: [PATCH 5/7] Updated select conditions --- mediapipe/BUILD | 1 + mediapipe/tasks/ios/vision/core/BUILD | 17 +++++++++++++++-- third_party/BUILD | 9 +++++---- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/mediapipe/BUILD b/mediapipe/BUILD index 3187c0cf..fd0cbab3 100644 --- a/mediapipe/BUILD +++ b/mediapipe/BUILD @@ -141,6 +141,7 @@ config_setting( "ios_armv7", "ios_arm64", "ios_arm64e", + "ios_sim_arm64", ] ] diff --git a/mediapipe/tasks/ios/vision/core/BUILD b/mediapipe/tasks/ios/vision/core/BUILD index 4b72fc91..0ea54fbc 100644 --- a/mediapipe/tasks/ios/vision/core/BUILD +++ b/mediapipe/tasks/ios/vision/core/BUILD @@ -61,6 +61,19 @@ objc_library( "//mediapipe/tasks/ios/core:MPPTaskRunner", "//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": [ + "@ios_opencv//:OpencvFramework" + ], + }) + ) diff --git a/third_party/BUILD b/third_party/BUILD index 3c3710d9..ce1e1bf7 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -65,7 +65,7 @@ config_setting( name = "opencv_ios_arm64_source_build", values = { "apple_platform_type": "ios", - "cpu": "ios_arm64" + "cpu": "ios_arm64", }, define_values = { "OPENCV": "source", @@ -75,7 +75,8 @@ config_setting( config_setting( name = "opencv_ios_sim_arm64_source_build", values = { - "config": "ios_sim_arm64", + "apple_platform_type": "ios", + "cpu": "ios_sim_arm64", }, define_values = { "OPENCV": "source", @@ -96,7 +97,8 @@ config_setting( config_setting( name = "opencv_ios_sim_fat_source_build", values = { - "config": "ios_sim_fat", + "apple_platform_type": "ios", + "ios_multi_cpus": "sim_arm64, x86_64" }, define_values = { "OPENCV": "source", @@ -109,7 +111,6 @@ alias( ":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_sim_arm64_source_build" : "@ios_opencv_source//:opencv", ":opencv_ios_arm64_source_build" : "@ios_opencv_source//:opencv", "//conditions:default": ":opencv_binary", }), From fec11735a35d19fcf75a07c08424c5ce876d9155 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:30:21 +0530 Subject: [PATCH 6/7] Updated formatting --- third_party/opencv_ios_source.BUILD | 2 +- third_party/opencv_ios_source.bzl | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/third_party/opencv_ios_source.BUILD b/third_party/opencv_ios_source.BUILD index 293846ce..0021e511 100644 --- a/third_party/opencv_ios_source.BUILD +++ b/third_party/opencv_ios_source.BUILD @@ -124,4 +124,4 @@ cc_library( visibility = ["//visibility:public"], deps = [":opencv_xcframework"], # data = [":opencv_xcframework"] -) \ No newline at end of file +) diff --git a/third_party/opencv_ios_source.bzl b/third_party/opencv_ios_source.bzl index 8474c287..8ddbffe2 100644 --- a/third_party/opencv_ios_source.bzl +++ b/third_party/opencv_ios_source.bzl @@ -148,4 +148,3 @@ unzip_opencv_xcframework = rule( "zip_file": attr.label(mandatory = True, allow_single_file=True), }, ) - From 82840b8e2874a823a4b95f6d039a0dbfabf9cf52 Mon Sep 17 00:00:00 2001 From: Prianka Liz Kariat Date: Fri, 28 Apr 2023 03:30:47 +0530 Subject: [PATCH 7/7] Removed comments --- third_party/opencv_ios_source.BUILD | 1 - 1 file changed, 1 deletion(-) diff --git a/third_party/opencv_ios_source.BUILD b/third_party/opencv_ios_source.BUILD index 0021e511..26a2b15e 100644 --- a/third_party/opencv_ios_source.BUILD +++ b/third_party/opencv_ios_source.BUILD @@ -123,5 +123,4 @@ cc_library( }), visibility = ["//visibility:public"], deps = [":opencv_xcframework"], - # data = [":opencv_xcframework"] )