From 1aa5e0d46fe9a5a263a1c751b7467ce27a75261d Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Mon, 28 Aug 2023 06:18:38 -0700 Subject: [PATCH] No public description PiperOrigin-RevId: 560689326 --- third_party/halide.BUILD | 2 +- third_party/halide/BUILD.bazel | 47 +++++++++++++++++++--------------- third_party/halide/halide.bzl | 37 +++++++++----------------- 3 files changed, 39 insertions(+), 47 deletions(-) diff --git a/third_party/halide.BUILD b/third_party/halide.BUILD index 677fa9f38..5521f6bb9 100644 --- a/third_party/halide.BUILD +++ b/third_party/halide.BUILD @@ -42,7 +42,7 @@ cc_library( cc_library( name = "lib_halide_static", srcs = select({ - "@halide//:halide_config_windows_x86_64": [ + "@mediapipe//mediapipe:windows": [ "bin/Release/Halide.dll", "lib/Release/Halide.lib", ], diff --git a/third_party/halide/BUILD.bazel b/third_party/halide/BUILD.bazel index 8b69a2503..272d78265 100644 --- a/third_party/halide/BUILD.bazel +++ b/third_party/halide/BUILD.bazel @@ -22,24 +22,29 @@ package( halide_library_runtimes() -# Aliases to platform-specific targets. -[ - alias( - name = target_name, - actual = select( - { - ":halide_config_linux_x86_64": "@linux_halide//:%s" % target_name, - ":halide_config_macos_x86_64": "@macos_x86_64_halide//:%s" % target_name, - ":halide_config_macos_arm64": "@macos_arm_64_halide//:%s" % target_name, - ":halide_config_windows_x86_64": "@windows_halide//:%s" % target_name, - # deliberately no //condition:default clause here - }, - no_match_error = "Compiling Halide code requires that the build host is one of Linux x86-64, Windows x86-64, macOS x86-64, or macOS arm64.", - ), - ) - for target_name in [ - "language", - "runtime", - "gengen", - ] -] +# Alias the 'gengen' target so that it uses the correct Halide release based on host platform. +alias( + name = "gengen", + actual = select( + { + "@mediapipe//mediapipe:macos_x86_64": "@macos_x86_64_halide//:gengen", + "@mediapipe//mediapipe:macos_arm64": "@macos_arm_64_halide//:gengen", + "@mediapipe//mediapipe:windows": "@windows_halide//:gengen", + "@mediapipe//mediapipe:linux": "@linux_halide//:gengen", + # Deliberately no //condition:default clause here. + }, + no_match_error = "Compiling Halide code requires that the build host is one of Linux x86-64, Windows x86-64, macOS x86-64, or macOS arm64.", + ), +) + +# Arbitrarily alias the 'runtime' and 'language' targets to the Linux Halide release. The underlying +# targets are identical for all host platforms. +alias( + name = "runtime", + actual = "@linux_halide//:runtime", +) + +alias( + name = "language", + actual = "@linux_halide//:language", +) diff --git a/third_party/halide/halide.bzl b/third_party/halide/halide.bzl index bbb0a1f97..9f67f8750 100644 --- a/third_party/halide/halide.bzl +++ b/third_party/halide/halide.bzl @@ -82,22 +82,22 @@ def halide_runtime_linkopts(): # Map of halide-target-base -> config_settings _HALIDE_TARGET_CONFIG_SETTINGS_MAP = { # Android - "arm-32-android": ["@halide//:halide_config_android_arm"], - "arm-64-android": ["@halide//:halide_config_android_arm64"], - "x86-32-android": ["@halide//:halide_config_android_x86_32"], - "x86-64-android": ["@halide//:halide_config_android_x86_64"], + "arm-32-android": ["@mediapipe//mediapipe:android_arm"], + "arm-64-android": ["@mediapipe//mediapipe:android_arm64"], + "x86-32-android": ["@mediapipe//mediapipe:android_x86"], + "x86-64-android": ["@mediapipe//mediapipe:android_x86_64"], # iOS - "arm-32-ios": ["@halide//:halide_config_ios_arm"], - "arm-64-ios": ["@halide//:halide_config_ios_arm64"], + "arm-32-ios": ["@mediapipe//mediapipe:ios_armv7"], + "arm-64-ios": ["@mediapipe//mediapipe:ios_arm64", "@mediapipe//mediapipe:ios_arm64e"], # OSX (or iOS simulator) - "x86-32-osx": ["@halide//:halide_config_macos_x86_32", "@halide//:halide_config_ios_x86_32"], - "x86-64-osx": ["@halide//:halide_config_macos_x86_64", "@halide//:halide_config_ios_x86_64"], - "arm-64-osx": ["@halide//:halide_config_macos_arm64"], + "x86-32-osx": ["@mediapipe//mediapipe:ios_i386"], + "x86-64-osx": ["@mediapipe//mediapipe:macos_x86_64", "@mediapipe//mediapipe:ios_x86_64"], + "arm-64-osx": ["@mediapipe//mediapipe:macos_arm64"], # Windows - "x86-64-windows": ["@halide//:halide_config_windows_x86_64"], + "x86-64-windows": ["@mediapipe//mediapipe:windows"], # Linux - "x86-64-linux": ["@halide//:halide_config_linux_x86_64"], - # deliberately nothing here using //conditions:default + "x86-64-linux": ["@mediapipe//mediapipe:linux"], + # Deliberately no //condition:default clause here. } _HALIDE_TARGET_MAP_DEFAULT = { @@ -618,19 +618,6 @@ def _standard_library_runtime_names(): return collections.uniq([_halide_library_runtime_target_name(f) for f in _standard_library_runtime_features()]) def halide_library_runtimes(compatible_with = []): - # Note that we don't use all of these combinations - # (and some are invalid), but that's ok. - for cpu in ["arm", "arm64", "x86_32", "x86_64"]: - for os in ["android", "linux", "windows", "ios", "macos"]: - native.config_setting( - name = "halide_config_%s_%s" % (os, cpu), - constraint_values = [ - "@platforms//os:%s" % os, - "@platforms//cpu:%s" % cpu, - ], - visibility = ["//visibility:public"], - ) - unused = [ _define_halide_library_runtime(f, compatible_with = compatible_with) for f in _standard_library_runtime_features()