Merge pull request #4300 from priankakariatyml:ios-text-cocoapods-force-load
PiperOrigin-RevId: 527932547
This commit is contained in:
		
						commit
						2bb1b454ea
					
				
							
								
								
									
										3
									
								
								.bazelrc
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								.bazelrc
									
									
									
									
									
								
							| 
						 | 
					@ -87,6 +87,9 @@ build:ios_fat --config=ios
 | 
				
			||||||
build:ios_fat --ios_multi_cpus=armv7,arm64
 | 
					build:ios_fat --ios_multi_cpus=armv7,arm64
 | 
				
			||||||
build:ios_fat --watchos_cpus=armv7k
 | 
					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 --apple_platform_type=macos
 | 
				
			||||||
build:darwin_x86_64 --macos_minimum_os=10.12
 | 
					build:darwin_x86_64 --macos_minimum_os=10.12
 | 
				
			||||||
build:darwin_x86_64 --cpu=darwin_x86_64
 | 
					build:darwin_x86_64 --cpu=darwin_x86_64
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										53
									
								
								mediapipe/framework/tool/ios.bzl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								mediapipe/framework/tool/ios.bzl
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,53 @@
 | 
				
			||||||
 | 
					# Copyright 2023 The MediaPipe Authors.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"""MediaPipe Task Library Helper Rules for iOS"""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MPP_TASK_MINIMUM_OS_VERSION = "11.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# When the static framework is built with bazel, the all header files are moved
 | 
				
			||||||
 | 
					# to the "Headers" directory with no header path prefixes. This auxiliary rule
 | 
				
			||||||
 | 
					# is used for stripping the path prefix to the C/iOS API header files included by
 | 
				
			||||||
 | 
					# other C/iOS API header files.
 | 
				
			||||||
 | 
					# In case of C header files, includes start with a keyword of "#include'.
 | 
				
			||||||
 | 
					# Imports in iOS header files start with a keyword of '#import'.
 | 
				
			||||||
 | 
					def strip_api_include_path_prefix(name, hdr_labels, prefix = ""):
 | 
				
			||||||
 | 
					    """Create modified header files with the import path stripped out.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Args:
 | 
				
			||||||
 | 
					      name: The name to be used as a prefix to the generated genrules.
 | 
				
			||||||
 | 
					      hdr_labels: List of header labels to strip out the include path. Each
 | 
				
			||||||
 | 
					          label must end with a colon followed by the header file name.
 | 
				
			||||||
 | 
					      prefix: Optional prefix path to prepend to the header inclusion path.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    for hdr_label in hdr_labels:
 | 
				
			||||||
 | 
					        hdr_filename = hdr_label.split(":")[-1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # The last path component of iOS header files is sources/some_file.h
 | 
				
			||||||
 | 
					        # Hence it wiill contain a '/'. So the string can be split at '/' to get
 | 
				
			||||||
 | 
					        # the header file name.
 | 
				
			||||||
 | 
					        if "/" in hdr_filename:
 | 
				
			||||||
 | 
					            hdr_filename = hdr_filename.split("/")[-1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        hdr_basename = hdr_filename.split(".")[0]
 | 
				
			||||||
 | 
					        native.genrule(
 | 
				
			||||||
 | 
					            name = "{}_{}".format(name, hdr_basename),
 | 
				
			||||||
 | 
					            srcs = [hdr_label],
 | 
				
			||||||
 | 
					            outs = [hdr_filename],
 | 
				
			||||||
 | 
					            cmd = """
 | 
				
			||||||
 | 
					            sed 's|#\\([a-z]*\\) ".*/\\([^/]\\{{1,\\}}\\.h\\)"|#\\1 "{}\\2"|'\
 | 
				
			||||||
 | 
					            "$(location {})"\
 | 
				
			||||||
 | 
					            > "$@"
 | 
				
			||||||
 | 
					            """.format(prefix, hdr_label),
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
							
								
								
									
										213
									
								
								mediapipe/tasks/ios/BUILD
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								mediapipe/tasks/ios/BUILD
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,213 @@
 | 
				
			||||||
 | 
					# 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					load(
 | 
				
			||||||
 | 
					    "//mediapipe/framework/tool:ios.bzl",
 | 
				
			||||||
 | 
					    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
				
			||||||
 | 
					    "strip_api_include_path_prefix",
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					load("@build_bazel_rules_apple//apple:apple.bzl", "apple_static_xcframework")
 | 
				
			||||||
 | 
					load("@build_bazel_rules_apple//apple:apple_static_library.bzl", "apple_static_library")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					package(default_visibility = ["//visibility:public"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					licenses(["notice"])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# List of targets to be added in avoid_deps of ":MediaPipeTasksVision_framework"
 | 
				
			||||||
 | 
					# and ":MediaPipeTasksText_framework".
 | 
				
			||||||
 | 
					# The transitive closure of the following targets are used for building the
 | 
				
			||||||
 | 
					# frameworks but are avoided from the framework binaries to avoid duplicate symbols
 | 
				
			||||||
 | 
					# error when included in an xcode project:
 | 
				
			||||||
 | 
					# 1. iOS classes shared amongst the various vision and text tasks. These classes
 | 
				
			||||||
 | 
					# 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",
 | 
				
			||||||
 | 
					    "//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/common/utils:MPPCommonUtils",
 | 
				
			||||||
 | 
					    "//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",
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					strip_api_include_path_prefix(
 | 
				
			||||||
 | 
					    name = "strip_api_include_path",
 | 
				
			||||||
 | 
					    hdr_labels = [
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/common:sources/MPPCommon.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/components/containers:sources/MPPCategory.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/components/containers:sources/MPPClassificationResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/components/containers:sources/MPPEmbedding.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/components/containers:sources/MPPEmbeddingResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/components/containers:sources/MPPDetection.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/core:sources/MPPBaseOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/core:sources/MPPTaskOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/core:sources/MPPTaskResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_classifier:sources/MPPTextClassifier.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_classifier:sources/MPPTextClassifierOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_classifier:sources/MPPTextClassifierResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_embedder:sources/MPPTextEmbedder.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_embedder:sources/MPPTextEmbedderOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_embedder:sources/MPPTextEmbedderResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/core:sources/MPPRunningMode.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/core:sources/MPPImage.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/image_classifier:sources/MPPImageClassifier.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/image_classifier:sources/MPPImageClassifierOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/image_classifier:sources/MPPImageClassifierResult.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/object_detector:sources/MPPObjectDetector.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/object_detector:sources/MPPObjectDetectorOptions.h",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/object_detector:sources/MPPObjectDetectionResult.h",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apple_static_xcframework(
 | 
				
			||||||
 | 
					    name = "MediaPipeTasksText_framework",
 | 
				
			||||||
 | 
					    # 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,
 | 
				
			||||||
 | 
					    bundle_name = "MediaPipeTasksText",
 | 
				
			||||||
 | 
					    ios = {
 | 
				
			||||||
 | 
					        "simulator": [
 | 
				
			||||||
 | 
					            "arm64",
 | 
				
			||||||
 | 
					            "x86_64",
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "device": ["arm64"],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    minimum_os_versions = {
 | 
				
			||||||
 | 
					        "ios": MPP_TASK_MINIMUM_OS_VERSION,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    public_hdrs = [
 | 
				
			||||||
 | 
					        ":MPPBaseOptions.h",
 | 
				
			||||||
 | 
					        ":MPPCategory.h",
 | 
				
			||||||
 | 
					        ":MPPClassificationResult.h",
 | 
				
			||||||
 | 
					        ":MPPEmbedding.h",
 | 
				
			||||||
 | 
					        ":MPPEmbeddingResult.h",
 | 
				
			||||||
 | 
					        ":MPPCommon.h",
 | 
				
			||||||
 | 
					        ":MPPTaskOptions.h",
 | 
				
			||||||
 | 
					        ":MPPTaskResult.h",
 | 
				
			||||||
 | 
					        ":MPPTextClassifier.h",
 | 
				
			||||||
 | 
					        ":MPPTextClassifierOptions.h",
 | 
				
			||||||
 | 
					        ":MPPTextClassifierResult.h",
 | 
				
			||||||
 | 
					        ":MPPTextEmbedder.h",
 | 
				
			||||||
 | 
					        ":MPPTextEmbedderOptions.h",
 | 
				
			||||||
 | 
					        ":MPPTextEmbedderResult.h",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    deps = [
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_classifier:MPPTextClassifier",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/text/text_embedder:MPPTextEmbedder",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apple_static_xcframework(
 | 
				
			||||||
 | 
					    name = "MediaPipeTasksVision_framework",
 | 
				
			||||||
 | 
					    # Avoids dependencies of ":MediaPipeTasksCommon_framework" and
 | 
				
			||||||
 | 
					    # ":MediaPipeTaskGraphs_library in order to prevent duplicate symbols error
 | 
				
			||||||
 | 
					    # 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",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    bundle_name = "MediaPipeTasksVision",
 | 
				
			||||||
 | 
					    ios = {
 | 
				
			||||||
 | 
					        "simulator": [
 | 
				
			||||||
 | 
					            "arm64",
 | 
				
			||||||
 | 
					            "x86_64",
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "device": ["arm64"],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    minimum_os_versions = {
 | 
				
			||||||
 | 
					        "ios": MPP_TASK_MINIMUM_OS_VERSION,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    public_hdrs = [
 | 
				
			||||||
 | 
					        ":MPPBaseOptions.h",
 | 
				
			||||||
 | 
					        ":MPPCategory.h",
 | 
				
			||||||
 | 
					        ":MPPClassificationResult.h",
 | 
				
			||||||
 | 
					        ":MPPDetection.h",
 | 
				
			||||||
 | 
					        ":MPPCommon.h",
 | 
				
			||||||
 | 
					        ":MPPTaskOptions.h",
 | 
				
			||||||
 | 
					        ":MPPTaskResult.h",
 | 
				
			||||||
 | 
					        ":MPPImage.h",
 | 
				
			||||||
 | 
					        ":MPPRunningMode.h",
 | 
				
			||||||
 | 
					        ":MPPImageClassifier.h",
 | 
				
			||||||
 | 
					        ":MPPImageClassifierOptions.h",
 | 
				
			||||||
 | 
					        ":MPPImageClassifierResult.h",
 | 
				
			||||||
 | 
					        ":MPPObjectDetector.h",
 | 
				
			||||||
 | 
					        ":MPPObjectDetectorOptions.h",
 | 
				
			||||||
 | 
					        ":MPPObjectDetectionResult.h",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    deps = [
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/image_classifier:MPPImageClassifier",
 | 
				
			||||||
 | 
					        "//mediapipe/tasks/ios/vision/object_detector:MPPObjectDetector",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apple_static_library(
 | 
				
			||||||
 | 
					    name = "MediaPipeTaskGraphs_library",
 | 
				
			||||||
 | 
					    # There is no way to turn off zlib dependency in custom opencv builds.
 | 
				
			||||||
 | 
					    # Hence zlib is avoided to prevent duplicate symbols because of conflicts
 | 
				
			||||||
 | 
					    # between opencv's zlib and "@zlib//:zlib"
 | 
				
			||||||
 | 
					    avoid_deps = [
 | 
				
			||||||
 | 
					        "@zlib//:zlib",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    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",
 | 
				
			||||||
 | 
					        "@org_tensorflow//third_party/icu/data:conversion_data",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apple_static_xcframework(
 | 
				
			||||||
 | 
					    name = "MediaPipeTasksCommon_framework",
 | 
				
			||||||
 | 
					    # avoids gpu targets since they will be built with
 | 
				
			||||||
 | 
					    # ":MediaPipeTaskGraphs_library". Otherwise it will result in
 | 
				
			||||||
 | 
					    # duplicate symbols error when the frameworks are imported in iOS.
 | 
				
			||||||
 | 
					    avoid_deps = [
 | 
				
			||||||
 | 
					        "//mediapipe/gpu:metal_shared_resources",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    bundle_name = "MediaPipeTasksCommon",
 | 
				
			||||||
 | 
					    ios = {
 | 
				
			||||||
 | 
					        "simulator": [
 | 
				
			||||||
 | 
					            "arm64",
 | 
				
			||||||
 | 
					            "x86_64",
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "device": ["arm64"],
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    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",
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
							
								
								
									
										23
									
								
								mediapipe/tasks/ios/MediaPipeTasksCommon.podspec.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								mediapipe/tasks/ios/MediaPipeTasksCommon.podspec.template
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					Pod::Spec.new do |s|
 | 
				
			||||||
 | 
					  s.name             = 'MediaPipeTasksCommon'
 | 
				
			||||||
 | 
					  s.version          = '${MPP_BUILD_VERSION}'
 | 
				
			||||||
 | 
					  s.authors          = 'Google Inc.'
 | 
				
			||||||
 | 
					  s.license          = { :type => 'Apache',:file => "LICENSE" }
 | 
				
			||||||
 | 
					  s.homepage         = 'https://github.com/google/mediapipe'
 | 
				
			||||||
 | 
					  s.source           = { :http => '${MPP_DOWNLOAD_URL}' }
 | 
				
			||||||
 | 
					  s.summary          = 'MediaPipe Task Library - Text'
 | 
				
			||||||
 | 
					  s.description      = 'The Natural Language APIs of the MediaPipe Task Library'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.ios.deployment_target = '11.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.module_name = 'MediaPipeTasksCommon'
 | 
				
			||||||
 | 
					  s.static_framework = true
 | 
				
			||||||
 | 
					  s.user_target_xcconfig = {
 | 
				
			||||||
 | 
					    'OTHER_LDFLAGS[sdk=iphonesimulator*]' => '$(inherited) -force_load "${PODS_ROOT}/MediaPipeTasksCommon/frameworks/graph_libraries/libMediaPipeTasksCommon_simulator_graph.a"',
 | 
				
			||||||
 | 
					    'OTHER_LDFLAGS[sdk=iphoneos*]' => '$(inherited) -force_load "$(PODS_ROOT)/MediaPipeTasksCommon/frameworks/graph_libraries/libMediaPipeTasksCommon_device_graph.a"',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  s.frameworks = 'Accelerate', 'CoreMedia', 'AssetsLibrary', 'CoreFoundation', 'CoreGraphics', 'CoreImage', 'QuartzCore', 'AVFoundation', 'CoreVideo'
 | 
				
			||||||
 | 
					  s.preserve_paths ='frameworks/graph_libraries/*.a'
 | 
				
			||||||
 | 
					  s.library = 'c++'
 | 
				
			||||||
 | 
					  s.vendored_frameworks = 'frameworks/MediaPipeTasksCommon.xcframework'
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										18
									
								
								mediapipe/tasks/ios/MediaPipeTasksText.podspec.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mediapipe/tasks/ios/MediaPipeTasksText.podspec.template
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					Pod::Spec.new do |s|
 | 
				
			||||||
 | 
					  s.name             = 'MediaPipeTasksText'
 | 
				
			||||||
 | 
					  s.version          = '${MPP_BUILD_VERSION}'
 | 
				
			||||||
 | 
					  s.authors          = 'Google Inc.'
 | 
				
			||||||
 | 
					  s.license          = { :type => 'Apache',:file => "LICENSE" }
 | 
				
			||||||
 | 
					  s.homepage         = 'https://github.com/google/mediapipe'
 | 
				
			||||||
 | 
					  s.source           = { :http => '${MPP_DOWNLOAD_URL}' }
 | 
				
			||||||
 | 
					  s.summary          = 'MediaPipe Task Library - Text'
 | 
				
			||||||
 | 
					  s.description      = 'The Natural Language APIs of the MediaPipe Task Library'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.ios.deployment_target = '11.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.module_name = 'MediaPipeTasksText'
 | 
				
			||||||
 | 
					  s.static_framework = true
 | 
				
			||||||
 | 
					  s.dependency 'MediaPipeTasksCommon'
 | 
				
			||||||
 | 
					  s.library = 'c++'
 | 
				
			||||||
 | 
					  s.vendored_frameworks = 'frameworks/MediaPipeTasksText.xcframework'
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										18
									
								
								mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								mediapipe/tasks/ios/MediaPipeTasksVision.podspec.template
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					Pod::Spec.new do |s|
 | 
				
			||||||
 | 
					  s.name             = 'MediaPipeTasksVision'
 | 
				
			||||||
 | 
					  s.version          = '${MPP_BUILD_VERSION}'
 | 
				
			||||||
 | 
					  s.authors          = 'Google Inc.'
 | 
				
			||||||
 | 
					  s.license          = { :type => 'Apache',:file => "LICENSE" }
 | 
				
			||||||
 | 
					  s.homepage         = 'https://github.com/google/mediapipe'
 | 
				
			||||||
 | 
					  s.source           = { :http => '${MPP_DOWNLOAD_URL}' }
 | 
				
			||||||
 | 
					  s.summary          = 'MediaPipe Task Library - Vision'
 | 
				
			||||||
 | 
					  s.description      = 'The Vision APIs of the MediaPipe Task Library'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.ios.deployment_target = '11.0'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  s.module_name = 'MediaPipeTasksVision'
 | 
				
			||||||
 | 
					  s.static_framework = true
 | 
				
			||||||
 | 
					  s.dependency 'MediaPipeTasksCommon'
 | 
				
			||||||
 | 
					  s.library = 'c++'
 | 
				
			||||||
 | 
					  s.vendored_frameworks = 'frameworks/MediaPipeTasksVision.xcframework'
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
							
								
								
									
										211
									
								
								mediapipe/tasks/ios/build_ios_framework.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										211
									
								
								mediapipe/tasks/ios/build_ios_framework.sh
									
									
									
									
									
										Executable file
									
								
							| 
						 | 
					@ -0,0 +1,211 @@
 | 
				
			||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					# 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set the following variables as appropriate.
 | 
				
			||||||
 | 
					#   * BAZEL: path to bazel. defaults to the first one available in PATH
 | 
				
			||||||
 | 
					#   * FRAMEWORK_NAME: name of the iOS framework to be built. Currently the
 | 
				
			||||||
 | 
					#   * accepted values are MediaPipeTasksCommon, MediaPipeTasksText, MediaPipeTasksVision.
 | 
				
			||||||
 | 
					#   * MPP_BUILD_VERSION: to specify the release version. defaults to 0.0.1-dev
 | 
				
			||||||
 | 
					#   * IS_RELEASE_BUILD: set as true if this build should be a release build
 | 
				
			||||||
 | 
					#   * ARCHIVE_FRAMEWORK: set as true if the framework should be archived
 | 
				
			||||||
 | 
					#   * DEST_DIR: destination directory to which the framework will be copied.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ "$(uname)" != "Darwin" ]]; then
 | 
				
			||||||
 | 
					  echo "This build script only works on macOS."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BAZEL="${BAZEL:-$(which bazel)}"
 | 
				
			||||||
 | 
					MPP_BUILD_VERSION=${MPP_BUILD_VERSION:-0.0.1-dev}
 | 
				
			||||||
 | 
					MPP_ROOT_DIR=$(git rev-parse --show-toplevel)
 | 
				
			||||||
 | 
					ARCHIVE_FRAMEWORK=${ARCHIVE_FRAMEWORK:-true}
 | 
				
			||||||
 | 
					IS_RELEASE_BUILD=${IS_RELEASE_BUILD:-false}
 | 
				
			||||||
 | 
					DEST_DIR=${DEST_DIR:-$HOME}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Destination"
 | 
				
			||||||
 | 
					echo "${DEST_DIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ ! -x "${BAZEL}" ]]; then
 | 
				
			||||||
 | 
					  echo "bazel executable is not found."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z ${FRAMEWORK_NAME+x} ]; then
 | 
				
			||||||
 | 
					  echo "Name of the iOS framework, which is to be built, must be set."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					case $FRAMEWORK_NAME in
 | 
				
			||||||
 | 
					  "MediaPipeTasksCommon")
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  "MediaPipeTasksVision")
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  "MediaPipeTasksText")
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  *)
 | 
				
			||||||
 | 
					    echo "Wrong framework name. The following framework names are allowed: MediaPipeTasksText, MediaPipeTasksVision, MediaPipeTasksCommon"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  ;;
 | 
				
			||||||
 | 
					esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [[ -z "${DEST_DIR+x}" || "${DEST_DIR}" == ${MPP_ROOT_DIR}* ]]; then
 | 
				
			||||||
 | 
					  echo "DEST_DIR variable must be set and not be under the repository root."
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# This function takes one bazel target label as an argument, and prints
 | 
				
			||||||
 | 
					# the path of the first output file of the specified target.
 | 
				
			||||||
 | 
					function get_output_file_path {
 | 
				
			||||||
 | 
					  local STARLARK_OUTPUT_TMPDIR="$(mktemp -d)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local STARLARK_FILE="${STARLARK_OUTPUT_TMPDIR}/print_output_file.starlark"
 | 
				
			||||||
 | 
					  cat > "${STARLARK_FILE}" << EOF
 | 
				
			||||||
 | 
					def format(target):
 | 
				
			||||||
 | 
					  return target.files.to_list()[0].path
 | 
				
			||||||
 | 
					EOF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  local OUTPUT_PATH=$(bazel cquery $1 --output=starlark --starlark:file="${STARLARK_FILE}" 2> /dev/null)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  rm -rf "${STARLARK_OUTPUT_TMPDIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  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 {
 | 
				
			||||||
 | 
					  local TARGET_PREFIX="//mediapipe/tasks/ios"
 | 
				
			||||||
 | 
					  FULL_FRAMEWORK_TARGET="${TARGET_PREFIX}:${FRAMEWORK_NAME}_framework"
 | 
				
			||||||
 | 
					  FULL_GRAPH_LIBRARY_TARGET="${TARGET_PREFIX}:${FRAMEWORK_NAME}_GraphLibrary"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # .bazelrc sets --apple_generate_dsym=true by default which bloats the libraries to sizes of
 | 
				
			||||||
 | 
					  # the order of GBs. All iOS framework and library build commands for distribution via
 | 
				
			||||||
 | 
					  # CocoaPods must set --apple_generate_dsym=false inorder to shave down the binary size to
 | 
				
			||||||
 | 
					  # 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}")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # `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}")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # 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}")"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					    ;;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function create_framework_archive {
 | 
				
			||||||
 | 
					  # Change to the Bazel iOS output directory.
 | 
				
			||||||
 | 
					  pushd "${BAZEL_IOS_OUTDIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Create the temporary directory for the given framework.
 | 
				
			||||||
 | 
					  local ARCHIVE_NAME="${FRAMEWORK_NAME}-${MPP_BUILD_VERSION}"
 | 
				
			||||||
 | 
					  local MPP_TMPDIR="$(mktemp -d)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Copy the license file to MPP_TMPDIR
 | 
				
			||||||
 | 
					  cp "LICENSE" ${MPP_TMPDIR}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Unzip the iOS framework zip generated by bazel to MPP_TMPDIR
 | 
				
			||||||
 | 
					  local FRAMEWORKS_DIR="${MPP_TMPDIR}/frameworks"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  echo ${IOS_FRAMEWORK_PATH}
 | 
				
			||||||
 | 
					  unzip "${IOS_FRAMEWORK_PATH}" -d "${FRAMEWORKS_DIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # If the framwork being built is `MediaPipeTasksCommon`, the built graph
 | 
				
			||||||
 | 
					  # libraries should be copied to the output directory which is to be archived.
 | 
				
			||||||
 | 
					  case $FRAMEWORK_NAME in
 | 
				
			||||||
 | 
					    "MediaPipeTasksCommon")
 | 
				
			||||||
 | 
					      local GRAPH_LIBRARIES_DIR="graph_libraries"
 | 
				
			||||||
 | 
					      # Create the parent folder which will hold the graph libraries of all architectures.
 | 
				
			||||||
 | 
					      mkdir -p "${FRAMEWORKS_DIR}/${GRAPH_LIBRARIES_DIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      local SIMULATOR_GRAPH_LIBRARY_PATH="${FRAMEWORKS_DIR}/${GRAPH_LIBRARIES_DIR}/lib${FRAMEWORK_NAME}_simulator_graph.a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Copy ios simulator fat library into a separate directory.
 | 
				
			||||||
 | 
					      echo ${IOS_GRAPHS_SIMULATOR_LIBRARY_PATH}
 | 
				
			||||||
 | 
					      cp "${IOS_GRAPHS_SIMULATOR_LIBRARY_PATH}" "${SIMULATOR_GRAPH_LIBRARY_PATH}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      local IOS_DEVICE_GRAPH_LIBRARY_PATH="${FRAMEWORKS_DIR}/${GRAPH_LIBRARIES_DIR}/lib${FRAMEWORK_NAME}_device_graph.a"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Copy ios device library into a separate directory.
 | 
				
			||||||
 | 
					      echo ${IOS_GRAPHS_DEVICE_LIBRARY_PATH}
 | 
				
			||||||
 | 
					      cp "${IOS_GRAPHS_DEVICE_LIBRARY_PATH}" "${IOS_DEVICE_GRAPH_LIBRARY_PATH}"
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					    *)
 | 
				
			||||||
 | 
					      ;;
 | 
				
			||||||
 | 
					  esac
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #----- (3) Move the framework to the destination -----
 | 
				
			||||||
 | 
					  if [[ "${ARCHIVE_FRAMEWORK}" == true ]]; then
 | 
				
			||||||
 | 
					    local TARGET_DIR="$(realpath "${FRAMEWORK_NAME}")"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Create the framework archive directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    local FRAMEWORK_ARCHIVE_DIR
 | 
				
			||||||
 | 
					    if [[ "${IS_RELEASE_BUILD}" == true ]]; then
 | 
				
			||||||
 | 
					      # Get the first 16 bytes of the sha256 checksum of the root directory.
 | 
				
			||||||
 | 
					      local SHA256_CHECKSUM=$(find "${MPP_TMPDIR}" -type f -print0 | xargs -0 shasum -a 256 | sort | shasum -a 256 | cut -c1-16)
 | 
				
			||||||
 | 
					      FRAMEWORK_ARCHIVE_DIR="${TARGET_DIR}/${MPP_BUILD_VERSION}/${SHA256_CHECKSUM}"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      FRAMEWORK_ARCHIVE_DIR="${TARGET_DIR}/${MPP_BUILD_VERSION}"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    mkdir -p "${FRAMEWORK_ARCHIVE_DIR}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Zip up the framework and move to the archive directory.
 | 
				
			||||||
 | 
					    pushd "${MPP_TMPDIR}"
 | 
				
			||||||
 | 
					    local MPP_ARCHIVE_FILE="${ARCHIVE_NAME}.tar.gz"
 | 
				
			||||||
 | 
					    tar -cvzf "${MPP_ARCHIVE_FILE}" .
 | 
				
			||||||
 | 
					    mv "${MPP_ARCHIVE_FILE}" "${FRAMEWORK_ARCHIVE_DIR}"
 | 
				
			||||||
 | 
					    popd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Move the target directory to the Kokoro artifacts directory.
 | 
				
			||||||
 | 
					    mv "${TARGET_DIR}" "$(realpath "${DEST_DIR}")"/
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    rsync -r "${MPP_TMPDIR}/" "$(realpath "${DEST_DIR}")/"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Clean up the temporary directory for the framework.
 | 
				
			||||||
 | 
					  rm -rf "${MPP_TMPDIR}"
 | 
				
			||||||
 | 
					  echo ${MPP_TMPDIR}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd "${MPP_ROOT_DIR}"
 | 
				
			||||||
 | 
					build_ios_frameworks_and_libraries
 | 
				
			||||||
 | 
					create_framework_archive
 | 
				
			||||||
| 
						 | 
					@ -1,3 +0,0 @@
 | 
				
			||||||
"""MediaPipe Task Library Helper Rules for iOS"""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MPP_TASK_MINIMUM_OS_VERSION = "11.0"
 | 
					 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ load(
 | 
				
			||||||
    "swift_library",
 | 
					    "swift_library",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
    "//mediapipe/tasks:ios/ios.bzl",
 | 
					    "//mediapipe/framework/tool:ios.bzl",
 | 
				
			||||||
    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
					    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,7 @@ load(
 | 
				
			||||||
    "swift_library",
 | 
					    "swift_library",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
    "//mediapipe/tasks:ios/ios.bzl",
 | 
					    "//mediapipe/framework/tool:ios.bzl",
 | 
				
			||||||
    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
					    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@ load(
 | 
				
			||||||
    "ios_unit_test",
 | 
					    "ios_unit_test",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
    "//mediapipe/tasks:ios/ios.bzl",
 | 
					    "//mediapipe/framework/tool:ios.bzl",
 | 
				
			||||||
    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
					    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test")
 | 
					load("@build_bazel_rules_apple//apple:ios.bzl", "ios_unit_test")
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
    "//mediapipe/tasks:ios/ios.bzl",
 | 
					    "//mediapipe/framework/tool:ios.bzl",
 | 
				
			||||||
    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
					    "MPP_TASK_MINIMUM_OS_VERSION",
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
load(
 | 
					load(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user