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_semihosting",
8    actual = select({
9        "//bazel/constraint:pico_stdio_semihosting_enabled": ":pico_stdio_semihosting_enabled",
10        "//conditions:default": ":pico_stdio_semihosting_disabled",
11    }),
12)
13
14pico_sdk_define(
15    name = "LIB_PICO_STDIO_SEMIHOSTING",
16    define_name = "LIB_PICO_STDIO_SEMIHOSTING",
17    from_flag = "//bazel/config:PICO_STDIO_SEMIHOSTING",
18)
19
20cc_library(
21    name = "pico_stdio_semihosting_enabled",
22    srcs = ["stdio_semihosting.c"],
23    hdrs = ["include/pico/stdio_semihosting.h"],
24    includes = ["include"],
25    target_compatible_with = compatible_with_rp2() + compatible_with_config(
26        "//bazel/constraint:pico_stdio_semihosting_enabled",
27    ),
28    deps = [
29        ":LIB_PICO_STDIO_SEMIHOSTING",
30        "//src/common/pico_binary_info",
31        "//src/rp2_common/pico_stdio:pico_stdio_headers",
32    ],
33)
34
35# Stub library that does NOT link in stdio semihosting support libs.
36cc_library(
37    name = "pico_stdio_semihosting_disabled",
38    hdrs = ["include/pico/stdio_semihosting.h"],
39    includes = ["include"],
40    target_compatible_with = compatible_with_rp2() + incompatible_with_config(
41        "//bazel/constraint:pico_stdio_semihosting_enabled",
42    ),
43    deps = [
44        ":LIB_PICO_STDIO_SEMIHOSTING",
45        "//src/rp2_common/pico_stdio:pico_stdio_headers",
46    ],
47)
48