| # Copyright 2020 The Pigweed 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 | 
 | # | 
 | #     https://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( | 
 |     "//pw_build:pigweed.bzl", | 
 |     "pw_cc_facade", | 
 |     "pw_cc_library", | 
 | ) | 
 |  | 
 | package(default_visibility = ["//visibility:public"]) | 
 |  | 
 | licenses(["notice"])  # Apache License 2.0 | 
 |  | 
 | pw_cc_facade( | 
 |     name = "context_facade", | 
 |     hdrs = [ | 
 |         "public/pw_interrupt/context.h", | 
 |     ], | 
 |     includes = ["public"], | 
 | ) | 
 |  | 
 | pw_cc_library( | 
 |     name = "context", | 
 |     deps = [ | 
 |         ":context_facade", | 
 |         "@pigweed_config//:pw_interrupt_backend", | 
 |     ], | 
 | ) | 
 |  | 
 | pw_cc_library( | 
 |     name = "backend_multiplexer", | 
 |     # Normally this would be done in the backend packages but because there is | 
 |     # no host implementation we have to define this here. | 
 |     target_compatible_with = select({ | 
 |         "@platforms//cpu:armv7-m": [], | 
 |         "@platforms//cpu:armv7e-m": [], | 
 |         "@platforms//cpu:armv8-m": [], | 
 |         "//conditions:default": ["@platforms//:incompatible"], | 
 |     }), | 
 |     visibility = ["@pigweed_config//:__pkg__"], | 
 |     deps = select({ | 
 |         "@platforms//cpu:armv7-m": ["//pw_interrupt_cortex_m:context_armv7m"], | 
 |         "@platforms//cpu:armv7e-m": ["//pw_interrupt_cortex_m:context_armv7m"], | 
 |         "@platforms//cpu:armv8-m": ["//pw_interrupt_cortex_m:context_armv8m"], | 
 |         # This is required for this to be a valid select when building for the | 
 |         # host i.e. 'bazel build //pw_interrupt/...'. The | 
 |         # target_compatible_with attribute is used to skip this target when | 
 |         # built with a wildcard. If explicitly depended on for a host build | 
 |         # the build will fail. | 
 |         "//conditions:default": [], | 
 |     }), | 
 | ) |