1load("//bazel:defs.bzl", "compatible_with_config", "compatible_with_rp2", "incompatible_with_config")
2
3package(default_visibility = ["//visibility:public"])
4
5alias(
6    name = "pico_multicore",
7    actual = select({
8        "//bazel/constraint:pico_multicore_enabled": ":pico_multicore_enabled",
9        "//conditions:default": ":pico_multicore_disabled",
10    }),
11)
12
13cc_library(
14    name = "pico_multicore_enabled",
15    srcs = ["multicore.c"],
16    hdrs = ["include/pico/multicore.h"],
17    defines = ["LIB_PICO_MULTICORE=1"],
18    includes = ["include"],
19    target_compatible_with = compatible_with_rp2() + compatible_with_config("//bazel/constraint:pico_multicore_enabled"),
20    deps = [
21        "//src/common/hardware_claim",
22        "//src/common/pico_sync",
23        "//src/rp2_common:hardware_regs",
24        "//src/rp2_common:hardware_structs",
25        "//src/rp2_common:pico_platform",
26        "//src/rp2_common/hardware_irq",
27        "//src/rp2_common/hardware_sync",
28        "//src/rp2_common/pico_runtime",
29    ],
30)
31
32# Stub library that does NOT link in multicore support libs.
33cc_library(
34    name = "pico_multicore_disabled",
35    hdrs = ["include/pico/multicore.h"],
36    defines = ["LIB_PICO_MULTICORE=0"],
37    includes = ["include"],
38    target_compatible_with = compatible_with_rp2() + incompatible_with_config("//bazel/constraint:pico_multicore_enabled"),
39    deps = [
40        "//src/common/pico_sync",
41        "//src/rp2_common:hardware_structs",
42        "//src/rp2_common:pico_platform",
43    ],
44)
45