# Copyright 2025 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("@pigweed//pw_build:compatibility.bzl", "incompatible_with_mcu") load("@rules_rust//rust:defs.bzl", "rust_doc_test", "rust_library") package(default_visibility = ["//visibility:public"]) config_setting( name = "riscv32_without_atomics", constraint_values = [ "//pw_build/constraints/riscv/extensions:A.not", "@platforms//cpu:riscv32", ], ) rust_library( name = "pw_atomic", srcs = [ "pw_atomic.rs", ], crate_features = select({ "riscv32_without_atomics": [], "//conditions:default": ["builtin_impls"], }), tags = ["kernel"], ) rust_doc_test( name = "pw_atomic_doc_test", crate = ":pw_atomic", tags = [ "kernel", "kernel_doc_test", ], target_compatible_with = incompatible_with_mcu(), )