# Copyright 2024 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.

package(default_visibility = ["//visibility:public"])

platform(
    name = "platform",
    constraint_values = [
        "//libraries/pw_board_led_rp2040:backend_constraint_value",
        "@freertos//:port_ARM_CM0",
        "@freertos//:disable_task_statics",
        "@pico-sdk//bazel/constraint:rp2",
        "@pico-sdk//bazel/constraint:rp2040",
        "@pico-sdk//bazel/constraint:stdio_usb",
        "@pigweed//targets/rp2040:freertos_config_cv",
        "@pigweed//pw_build/constraints/rtos:freertos",
        "@pigweed//pw_interrupt_cortex_m:backend",
        "@pigweed//pw_malloc_freelist:backend",
        "@pigweed//pw_sys_io_rp2040:backend",
        # For toolchain selection.
        "@platforms//cpu:armv6-m",
        "@pw_toolchain//constraints/arm_mcpu:cortex-m0",
    ],
)
