1load("@pico-sdk//bazel:defs.bzl", "incompatible_with_config", "compatible_with_config") 2 3package(default_visibility = ["//visibility:public"]) 4 5# Some of the LWIP sys_arch.h and the lwip headers depend circularly on one 6# another. Include them all in the same target. 7cc_library( 8 name = "pico_lwip_headers", 9 hdrs = glob(["**/*.h"]), 10 includes = [ 11 "contrib/ports/freertos/include/arch", 12 "src/include", 13 ], 14 visibility = [ 15 "@pico-sdk//src/rp2_common/pico_lwip:__pkg__", 16 ], 17 deps = [ 18 "@pico-sdk//src/rp2_common/pico_lwip:pico_lwip_config", 19 ], 20) 21 22cc_library( 23 name = "pico_lwip_core", 24 srcs = glob(["src/core/*.c"]), 25 deps = [ 26 ":pico_lwip_headers", 27 "@pico-sdk//bazel/config:PICO_LWIP_CONFIG", 28 ], 29 target_compatible_with = incompatible_with_config("@pico-sdk//bazel/constraint:pico_lwip_config_unset") 30) 31 32cc_library( 33 name = "pico_lwip_core4", 34 srcs = glob(["src/core/ipv4/*.c"]), 35 deps = [":pico_lwip_core"], 36 alwayslink = True, 37) 38 39cc_library( 40 name = "pico_lwip_core6", 41 srcs = glob(["src/core/ipv6/*.c"]), 42 deps = [":pico_lwip_core"], 43 alwayslink = True, 44) 45 46cc_library( 47 name = "pico_lwip_api", 48 srcs = glob(["src/api/*.c"]), 49 deps = [":pico_lwip_core"], 50) 51 52cc_library( 53 name = "pico_lwip_netif", 54 srcs = [ 55 "src/netif/bridgeif.c", 56 "src/netif/bridgeif_fdb.c", 57 "src/netif/ethernet.c", 58 "src/netif/slipif.c", 59 ], 60 deps = [":pico_lwip_core"], 61) 62 63cc_library( 64 name = "pico_lwip_sixlowpan", 65 srcs = [ 66 "src/netif/lowpan6.c", 67 "src/netif/lowpan6_ble.c", 68 "src/netif/lowpan6_common.c", 69 "src/netif/zepif.c", 70 ], 71 deps = [":pico_lwip_core"], 72) 73 74cc_library( 75 name = "pico_lwip_ppp", 76 srcs = glob(["src/netif/ppp/*/*.c"]), 77 deps = [":pico_lwip_core"], 78) 79 80cc_library( 81 name = "pico_lwip_snmp", 82 srcs = glob( 83 ["src/apps/snmp/*.c"], 84 # mbedtls is provided through pico_lwip_mbedtls. 85 exclude = ["*mbedtls.c"], 86 ), 87 deps = [":pico_lwip_core"], 88) 89 90cc_library( 91 name = "pico_lwip_http", 92 srcs = glob(["src/apps/http/*.c"]), 93 deps = [":pico_lwip_core"], 94) 95 96cc_library( 97 name = "pico_lwip_makefsdata", 98 srcs = ["src/apps/http/makefsdata/makefsdata.c"], 99 deps = [":pico_lwip_core"], 100) 101 102cc_library( 103 name = "pico_lwip_iperf", 104 srcs = ["src/apps/lwiperf/lwiperf.c"], 105 deps = [":pico_lwip_core"], 106) 107 108cc_library( 109 name = "pico_lwip_smtp", 110 srcs = ["src/apps/smtp/smtp.c"], 111 deps = [":pico_lwip_core"], 112) 113 114cc_library( 115 name = "pico_lwip_sntp", 116 srcs = ["src/apps/sntp/sntp.c"], 117 deps = [":pico_lwip_core"], 118) 119 120cc_library( 121 name = "pico_lwip_mdns", 122 srcs = glob(["src/apps/mdns/*.c"]), 123 deps = [":pico_lwip_core"], 124) 125 126cc_library( 127 name = "pico_lwip_netbios", 128 srcs = ["src/apps/netbiosns/netbiosns.c"], 129 deps = [":pico_lwip_core"], 130) 131 132cc_library( 133 name = "pico_lwip_tftp", 134 srcs = ["src/apps/tftp/tftp.c"], 135 deps = [":pico_lwip_core"], 136) 137 138cc_library( 139 name = "pico_lwip_mbedtls", 140 srcs = [ 141 "src/apps/altcp_tls/altcp_tls_mbedtls.c", 142 "src/apps/altcp_tls/altcp_tls_mbedtls_mem.c", 143 "src/apps/snmp/snmpv3_mbedtls.c", 144 ], 145 deps = [":pico_lwip_core"], 146) 147 148cc_library( 149 name = "pico_lwip_mqttt", 150 srcs = ["src/apps/mqtt/mqtt.c"], 151 deps = [":pico_lwip_core"], 152) 153 154cc_library( 155 name = "pico_lwip", 156 deps = [ 157 ":pico_lwip_api", 158 ":pico_lwip_core", 159 ":pico_lwip_core4", 160 ":pico_lwip_core6", 161 ":pico_lwip_netif", 162 ":pico_lwip_ppp", 163 ":pico_lwip_sixlowpan", 164 ], 165) 166 167cc_library( 168 name = "pico_lwip_contrib_freertos", 169 srcs = ["contrib/ports/freertos/sys_arch.c"], 170 includes = ["contrib/ports/freertos/include"], 171 target_compatible_with = incompatible_with_config( 172 "@pico-sdk//bazel/constraint:pico_freertos_unset", 173 ), 174 deps = [ 175 ":pico_lwip_headers", 176 "@pico-sdk//bazel/config:PICO_FREERTOS_LIB", 177 ], 178) 179