1load("//bazel:defs.bzl", "compatible_with_rp2")
2load("//bazel/util:transition.bzl", "pico_float_test_binary")
3
4package(default_visibility = ["//visibility:public"])
5
6cc_binary(
7    name = "pico_float_test",
8    testonly = True,
9    srcs = [
10        "llvm/call_apsr.S",
11        "llvm/call_apsr.h",
12        "pico_float_test.c",
13    ],
14    includes = ["llvm"],
15    target_compatible_with = compatible_with_rp2(),
16    deps = [
17        "//src/rp2_common:pico_platform",
18        "//src/rp2_common/pico_double",
19        "//src/rp2_common/pico_float",
20        "//src/rp2_common/pico_stdlib",
21    ],
22)
23
24cc_binary(
25    name = "pico_double_test_actual",
26    testonly = True,
27    srcs = [
28        "llvm/call_apsr.S",
29        "llvm/call_apsr.h",
30        "pico_double_test.c",
31    ],
32    includes = ["llvm"],
33    tags = ["manual"],
34    target_compatible_with = compatible_with_rp2(),
35    deps = [
36        "//src/rp2_common:pico_platform",
37        "//src/rp2_common/pico_double",
38        "//src/rp2_common/pico_stdlib",
39    ],
40)
41
42pico_float_test_binary(
43    name = "pico_double_test",
44    testonly = True,
45    src = ":pico_double_test_actual",
46    extra_copts = [
47        "-DPICO_USE_CRT_PRINTF=1",
48        "-DPICO_FLOAT_PROPAGATE_NANS=1",
49        "-DPICO_DOUBLE_PROPAGATE_NANS=1",
50    ],
51    pico_printf_impl = select({
52        # raw compiler printf on llvm_libc doesn't currently have floating point
53        "//bazel/constraint:pico_clib_llvm_libc_enabled": "pico",
54        "//bazel/constraint:pico_toolchain_clang_enabled": "pico",
55        "//conditions:default": "compiler",
56    }),
57    target_compatible_with = compatible_with_rp2(),
58)
59
60# TODO: Marked in CMake as to-be-removed.
61filegroup(
62    name = "m33",
63    srcs = ["m33.c"],
64)
65