1load("//bazel:defs.bzl", "compatible_with_config", "compatible_with_rp2", "incompatible_with_config")
2load("//bazel/util:sdk_define.bzl", "pico_sdk_define")
3
4package(default_visibility = ["//visibility:public"])
5
6alias(
7    name = "pico_stdio_rtt",
8    actual = select({
9        "//bazel/constraint:pico_stdio_rtt_enabled": ":pico_stdio_rtt_enabled",
10        "//conditions:default": ":pico_stdio_rtt_disabled",
11    }),
12)
13
14pico_sdk_define(
15    name = "LIB_PICO_STDIO_RTT",
16    define_name = "LIB_PICO_STDIO_RTT",
17    from_flag = "//bazel/config:PICO_STDIO_RTT",
18)
19
20cc_library(
21    name = "pico_stdio_rtt_enabled",
22    srcs = [
23        "SEGGER/RTT/SEGGER_RTT.c",
24        "stdio_rtt.c",
25    ],
26    hdrs = [
27        "SEGGER/Config/SEGGER_RTT_Conf.h",
28        "SEGGER/RTT/SEGGER_RTT.h",
29        "include/pico/stdio_rtt.h",
30    ],
31    includes = [
32        "SEGGER/RTT",
33        "include",
34    ],
35    target_compatible_with = compatible_with_rp2() + compatible_with_config(
36        "//bazel/constraint:pico_stdio_rtt_enabled",
37    ),
38    deps = [
39        ":LIB_PICO_STDIO_RTT",
40        "//src/common/pico_binary_info",
41        "//src/rp2_common/pico_stdio:pico_stdio_headers",
42    ],
43)
44
45# Stub library that does NOT link in stdio rtt support libs.
46cc_library(
47    name = "pico_stdio_rtt_disabled",
48    hdrs = [
49        "SEGGER/Config/SEGGER_RTT_Conf.h",
50        "SEGGER/RTT/SEGGER_RTT.h",
51        "include/pico/stdio_rtt.h",
52    ],
53    includes = [
54        "SEGGER/RTT",
55        "include",
56    ],
57    target_compatible_with = compatible_with_rp2() + incompatible_with_config(
58        "//bazel/constraint:pico_stdio_rtt_enabled",
59    ),
60    deps = [
61        ":LIB_PICO_STDIO_RTT",
62        "//src/rp2_common/pico_stdio:pico_stdio_headers",
63    ],
64)
65